tree: f8380decef97580a00e2aed7e69ab232727a3fcb [path history] [tgz]
  1. styles/
  2. Clone.md
  3. cmp.md
  4. custom.css
  5. debug-transparent-orig.rs
  6. debug-transparent.rs
  7. Debug.md
  8. default-enum-orig.rs
  9. default-enum.rs
  10. default-value-orig.rs
  11. default-value.rs
  12. Default.md
  13. eq-ignore-orig.rs
  14. eq-ignore.rs
  15. Hash.md
  16. README.md
  17. SUMMARY.md
third_party/rust_crates/vendor/derivative/doc/README.md

Derivative

This crate provides a set of alternative #[derive] attributes for Rust.

Examples

derivative uses attributes to make it possible to derive more implementations than the built-in derive(Trait). Here are a few examples of stuffs you cannot just derive.

You can derive Default on enumerations:

With derivative

Original

{{#playground default-enum.rs}}

{{#playground default-enum-orig.rs}}

You can use different default values for some fields:

With derivative

Original

{{#playground default-value.rs}}

{{#playground default-value-orig.rs}}

Want a transparent Debug implementation for your wrapper? We got that:

With derivative

Original

{{#playground debug-transparent.rs}}

{{#playground debug-transparent-orig.rs}}

Need to ignore a field? We got that too:

With derivative

Original

{{#playground eq-ignore.rs}}

{{#playground eq-ignore-orig.rs}}