tree: c1dfa876401fb28b27a0ba61c8a879f135e00219 [path history] [tgz]
  1. styles/
  2. Clone.md
  3. cmp.md
  4. debug-transparent-orig.rs
  5. debug-transparent.rs
  6. Debug.md
  7. default-enum-orig.rs
  8. default-enum.rs
  9. default-value-orig.rs
  10. default-value.rs
  11. Default.md
  12. eq-ignore-orig.rs
  13. eq-ignore.rs
  14. Hash.md
  15. README.md
  16. 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 derivativeOriginal
{% codesnippet “default-enum.rs” %}{% endcodesnippet %}{% codesnippet “default-enum-orig.rs” %}{% endcodesnippet %}

You can use different default values for some fields:

With derivativeOriginal
{% codesnippet “default-value.rs” %}{% endcodesnippet %}{% codesnippet “default-value-orig.rs” %}{% endcodesnippet %}

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

With derivativeOriginal
{% codesnippet “debug-transparent.rs” %}{% endcodesnippet %}{% codesnippet “debug-transparent-orig.rs” %}{% endcodesnippet %}

Need to ignore a field? We got that too:

With derivativeOriginal
{% codesnippet “eq-ignore.rs” %}{% endcodesnippet %}{% codesnippet “eq-ignore-orig.rs” %}{% endcodesnippet %}