-
Notifications
You must be signed in to change notification settings - Fork 382
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add init-struct pattern #388
base: main
Are you sure you want to change the base?
Conversation
```rust | ||
#[derive(Debug, Default, PartialEq)] | ||
pub struct Foo { | ||
pub foo: Some(u32) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pub foo: Some(u32) | |
pub foo: Option<u32>, |
|
||
|
||
#[test] | ||
fn inint_struct_test() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fn inint_struct_test() { | |
fn init_struct_test() { |
fn inint_struct_test() { | ||
let foo = Foo { | ||
bar: "Some string".to_string(), | ||
..Default::default |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
..Default::default | |
..Default::default() |
In general, I'm not sure, that this values an own article. I also see it more as an idiom, than a pattern. Can you look into https://github.com/rust-unofficial/patterns/blob/main/src/idioms/ctor.md and see what you would want to add there? Also, there is something written down about that topic here already:
P.S.: Before writing an article and making a PR it's always better to open an issue/discussion before as stated in our Contribution guidelines, so there is no energy being wasted on either side. |
I find that many Rustaceans, even people using the language for a while are oblibious of this pattern/idiom. Especially people coming from other languages. So I though rather than adding it as a "footnote" somehere on an existing page, I make a dedicated one. Today I ran into this again here. That's why I decided to write this. But it only took me 20mins. So if the PR is rejected, it's not a biggie. 😁 |
It doesn't need to be only a footnote in said existing article. You can write a few lines about it as well and then link the both links I posted for example, to make people aware, that this topic is explained in the book. |
See here for a more exhaustive description.