A struct constructor with private fields was invoked.
Erroneous code example:
mod bar { pub struct Foo { pub a: isize, b: isize, } } let f = bar::Foo{ a: 0, b: 0 }; // error: field `b` of struct `bar::Foo` // is private
To fix this error, please ensure that all the fields of the struct are public, or implement a function for easy instantiation. Examples:
mod bar {
pub struct Foo {
pub a: isize,
pub b: isize, // we set `b` field public
}
}
let f = bar::Foo{ a: 0, b: 0 }; // ok!
Or:
mod bar {
pub struct Foo {
pub a: isize,
b: isize, // still private
}
impl Foo {
pub fn new() -> Foo { // we create a method to instantiate `Foo`
Foo { a: 0, b: 0 }
}
}
}
let f = bar::Foo::new(); // ok!