blob: a12378a206de2252b21c51a56e240691b8687c09 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
A struct constructor with private fields was invoked.
Erroneous code example:
```compile_fail,E0451
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!
```
|