Skip to content

Commit

Permalink
Add some zig + rust test
Browse files Browse the repository at this point in the history
  • Loading branch information
ledongthuc committed Nov 3, 2022
1 parent 3bb9171 commit 720be72
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 12 deletions.
81 changes: 69 additions & 12 deletions rust/003_data_types/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,56 @@ fn main() {
// Scalar types: integers
println!("min i8: {}, max i8: {}", i8::min_value(), i8::max_value());
println!("min u8: {}, max u8: {}", u8::min_value(), u8::max_value());
println!("min i16: {}, max i16: {}", i16::min_value(), i16::max_value());
println!("min u16: {}, max u16: {}", u16::min_value(), u16::max_value());
println!("min i32: {}, max i32: {}", i32::min_value(), i32::max_value());
println!("min u32: {}, max u32: {}", u32::min_value(), u32::max_value());
println!("min i64: {}, max i64: {}", i64::min_value(), i64::max_value());
println!("min u64: {}, max u64: {}", u64::min_value(), u64::max_value());
println!("min i128: {}, max i128: {}", i128::min_value(), i128::max_value());
println!("min u128: {}, max u128: {}", u128::min_value(), u128::max_value());
println!("min isize: {}, max isize: {}", isize::min_value(), isize::max_value());
println!("min usize: {}, max usize: {}", usize::min_value(), usize::max_value());
println!(
"min i16: {}, max i16: {}",
i16::min_value(),
i16::max_value()
);
println!(
"min u16: {}, max u16: {}",
u16::min_value(),
u16::max_value()
);
println!(
"min i32: {}, max i32: {}",
i32::min_value(),
i32::max_value()
);
println!(
"min u32: {}, max u32: {}",
u32::min_value(),
u32::max_value()
);
println!(
"min i64: {}, max i64: {}",
i64::min_value(),
i64::max_value()
);
println!(
"min u64: {}, max u64: {}",
u64::min_value(),
u64::max_value()
);
println!(
"min i128: {}, max i128: {}",
i128::min_value(),
i128::max_value()
);
println!(
"min u128: {}, max u128: {}",
u128::min_value(),
u128::max_value()
);
println!(
"min isize: {}, max isize: {}",
isize::min_value(),
isize::max_value()
);
println!(
"min usize: {}, max usize: {}",
usize::min_value(),
usize::max_value()
);
println!("decimal: {}", 10_000_000);
println!("hex: {}", 0xff);
println!("octal: {}", 0o77);
Expand All @@ -32,7 +72,10 @@ fn main() {
println!("i8::wrapping_add(127, 1): {}", i8::wrapping_add(127, 1));
// Will panic
// i8::checked_add(127, 1).expect("overflow");
println!("i8::overflowing_add(127, 1): {:?}", i8::overflowing_add(127, 1));
println!(
"i8::overflowing_add(127, 1): {:?}",
i8::overflowing_add(127, 1)
);

// Scalar types: floating points
println!("min f64: {}, max f64: {}", f64::MIN, f64::MAX);
Expand Down Expand Up @@ -64,8 +107,22 @@ fn main() {
// scalar types: compound types - array
let arr = [1, 2, 3, 4, 5];
println!("arr: {:?}", arr);
let testArr: [u8; 5] = [1,2,3,4,5];
let testArr: [u8; 5] = [1, 2, 3, 4, 5];
println!("testArr: {:?}, testArr[2]: {}", testArr, testArr[2]);
let fiveThree = [3; 5];
println!("fiveThree: {:?}", fiveThree);
}

#[cfg(test)]
mod tests {
#[test]
fn test_type_suffix() {
let a = 32u32;

assert_eq!("u32", print_type_of(&a));
}

fn print_type_of<T>(_: &T) -> &str {
std::any::type_name::<T>()
}
}
5 changes: 5 additions & 0 deletions rust/018_reference_borrowing/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,11 @@ fn main() {

let s7 = no_dangle();
println!("s7: {}", s7);

let s8 = String::from("Test");
let s8_ref = &s8;
let s8_ref_deref = *s8_ref;
println!("{s8_ref_deref}, {s8_ref}, {s8_ref_deref}");
}

fn calculate_length(s: &String) -> usize {
Expand Down
2 changes: 2 additions & 0 deletions zig/997_allocator/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
run:
zig run hello.zig
Binary file added zig/997_allocator/hello
Binary file not shown.
9 changes: 9 additions & 0 deletions zig/997_allocator/hello.zig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const std = @import("std");
const expect = std.testing.expect;

pub fn main() !void {
var general_purpose_allocator = std.heap.GeneralPurposeAllocator(.{}){};
const gpa = general_purpose_allocator.allocator();
const u32_ptr = try gpa.create(u32);
_ = u32_ptr;
}

0 comments on commit 720be72

Please sign in to comment.