Error code E0451
A struct constructor with private fields was invoked.
Erroneous code example:
#![allow(unused)] fn main() { 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:
#![allow(unused)] fn main() { 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:
#![allow(unused)] fn main() { 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! }