diff --git a/src/concepts/box_basics.rs b/src/concepts/box_basics.rs new file mode 100644 index 0000000..9b29ffc --- /dev/null +++ b/src/concepts/box_basics.rs @@ -0,0 +1,14 @@ +fn box_integer(number: i32) -> Box { + Box::new(number) +} + +fn box_function() -> Box Box> { + Box::new(box_integer) +} + +pub fn box_basics() { + let boxed_int = box_integer(3); + let boxed_boxer = box_function(); + let another_boxed_int = boxed_boxer(4); + print!("Box basics: {} {}", boxed_int, another_boxed_int); +} diff --git a/src/concepts/mod.rs b/src/concepts/mod.rs new file mode 100644 index 0000000..e63aab8 --- /dev/null +++ b/src/concepts/mod.rs @@ -0,0 +1,3 @@ +mod box_basics; + +pub use box_basics::box_basics; diff --git a/src/lib/libmy_lib.rlib b/src/lib/libmy_lib.rlib new file mode 100644 index 0000000..aca12a7 Binary files /dev/null and b/src/lib/libmy_lib.rlib differ diff --git a/src/main.rs b/src/main.rs index 2f42dd4..2c0d2df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,8 +14,9 @@ // mod controlflow; // mod traits; // mod str_types; -mod functions; +// mod functions; // mod exercises; +mod concepts; fn main() { // helloworld::hello_world_module(); @@ -27,6 +28,8 @@ fn main() { // controlflow::control_flow_module(); //traits::traits_exercise(); // str_types::str_types_module(); - functions::functions_module(); // exercises::run_easy(); + // my_lib::public_function(); + // functions::functions_module(); + concepts::box_basics(); } diff --git a/src/my_lib.rs b/src/my_lib.rs new file mode 100644 index 0000000..e2468ad --- /dev/null +++ b/src/my_lib.rs @@ -0,0 +1,8 @@ +pub fn public_function() { + println!("This is a public funcion that calls a private one!"); + private_function(); +} + +fn private_function() { + println!("This is a private function!"); +}