Attempted to access a private field on a struct.
Erroneous code example:
mod some_module { pub struct Foo { x: u32, // So `x` is private in here. } impl Foo { pub fn new() -> Foo { Foo { x: 0 } } } } let f = some_module::Foo::new(); println!("{}", f.x); // error: field `x` of struct `some_module::Foo` is private
If you want to access this field, you have two options:
mod some_module { pub struct Foo { pub x: u32, // `x` is now public. } impl Foo { pub fn new() -> Foo { Foo { x: 0 } } } } let f = some_module::Foo::new(); println!("{}", f.x); // ok!
mod some_module { pub struct Foo { x: u32, // So `x` is still private in here. } impl Foo { pub fn new() -> Foo { Foo { x: 0 } } // We create the getter function here: pub fn get_x(&self) -> &u32 { &self.x } } } let f = some_module::Foo::new(); println!("{}", f.get_x()); // ok!