#[derive(Display)] /// Just a basic struct {thing} struct HappyStruct {
thing: &'static str,
}
#[derive(Display)] #[ignore_extra_doc_attributes] /// Just a basic struct {thing} /// and this line should get ignored struct HappyStruct2 {
thing: &'static str,
}
#[derive(Display)] enum Happy { /// I really like Variant1
Variant1, /// Variant2 is pretty swell 2
Variant2, /// Variant3 is okay {sometimes}
Variant3 { sometimes: &'static str }, /** *Variant4wantstohavealotoflines * *Letsseehowthisworksoutforit
*/
Variant4, /// Variant5 has a parameter {0} and some regular comments // A regular comment that won't get picked
Variant5(u32),
/// The path {0} #[cfg(feature = "std")]
Variant6(PathBuf),
/// These docs are ignored #[displaydoc("Variant7 has a parameter {0} and uses #[displaydoc]")] /// These docs are also ignored
Variant7(u32),
}
// Used for testing indented doc comments mod inner_mod { usesuper::Display;
#[derive(Display)] pubenum InnerHappy { /// I really like Variant1
Variant1, /// Variant2 is pretty swell 2
Variant2, /// Variant3 is okay {sometimes}
Variant3 { sometimes: &'static str }, /** *Variant4wantstohavealotoflines * *Letsseehowthisworksoutforit
*/
Variant4, /// Variant5 has a parameter {0} and some regular comments // A regular comment that won't get picked
Variant5(u32),
/** what happens if we *puttextonthefirstline?
*/
Variant6,
/** whathappensifwedon'tuse*?
*/
Variant7,
/** * *whataboutextranewlines?
*/
Variant8,
}
}
fn assert_display<T: std::fmt::Display>(input: T, expected: &'static str) { let out = format!("{}", input);
assert_eq!(expected, out);
}
#[test] fn does_it_print() {
assert_display(Happy::Variant1, "I really like Variant1");
assert_display(Happy::Variant2, "Variant2 is pretty swell 2");
assert_display(Happy::Variant3 { sometimes: "hi" }, "Variant3 is okay hi");
assert_display(
Happy::Variant4, "Variant4 wants to have a lot of lines\n\nLets see how this works out for it",
);
assert_display(
Happy::Variant5(2), "Variant5 has a parameter 2 and some regular comments",
);
assert_display(
Happy::Variant7(2), "Variant7 has a parameter 2 and uses #[displaydoc]",
);
assert_display(HappyStruct { thing: "hi" }, "Just a basic struct hi");
assert_display(HappyStruct2 { thing: "hi2" }, "Just a basic struct hi2");
assert_display(inner_mod::InnerHappy::Variant1, "I really like Variant1");
assert_display(
inner_mod::InnerHappy::Variant2, "Variant2 is pretty swell 2",
);
assert_display(
inner_mod::InnerHappy::Variant3 { sometimes: "hi" }, "Variant3 is okay hi",
);
assert_display(
inner_mod::InnerHappy::Variant4, "Variant4 wants to have a lot of lines\n\nLets see how this works out for it",
);
assert_display(
inner_mod::InnerHappy::Variant5(2), "Variant5 has a parameter 2 and some regular comments",
);
assert_display(
inner_mod::InnerHappy::Variant6, "what happens if we\nput text on the first line?",
);
assert_display(
inner_mod::InnerHappy::Variant7, "what happens if we don\'t use *?",
);
assert_display(
inner_mod::InnerHappy::Variant8, "what about extra new lines?",
);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.