-
Notifications
You must be signed in to change notification settings - Fork 376
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in 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.