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
RunTo 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!
RunOr:
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!
Run