mod inner {
use injectables::{injectable, inject_fields};
#[injectable]
#[derive(Default)] pub struct Private {
id: u64, pub name: String, pub(crate) age: u32, }
#[inject_fields(Private)]
#[derive(Debug, Default)] pub struct TestVisibility {
value: u32, pub description: String, }
pub fn new_test_visibility(description: String, name: String, age: u32) -> TestVisibility {
TestVisibility {
value: 42,
description,
id: 1,
name,
age,
}
}
pub fn test_same_module() -> TestVisibility {
let test = TestVisibility {
value: 42,
description: "Test".to_string(),
id: 1,
name: "Test".to_string(),
age: 25,
};
assert_eq!(test.value, 42);
assert_eq!(test.id, 1);
assert_eq!(test.age, 25);
test
}
}
fn test_different_module() {
let test = inner::new_test_visibility(
"Test".to_string(),
"Test".to_string(),
25
);
let mut test2 = inner::TestVisibility::default();
test2.description = "Test".to_string();
test2.name = "Test".to_string();
test2.age = 25;
assert_eq!(test.name, "Test");
assert_eq!(test.description, "Test");
assert_eq!(test.age, 25);
}
fn main() {
test_different_module();
}