ConstDefault Trait

Crates.io Crates.io docs.rs actions

A Default-like trait and derive macros for const evaluation contexts.

This crate defines the ConstDefault trait and implements it for Rust primitives, prelude types, tuples and arrays. Furthermore it provides a derive macro so that users can implement ConstDefault easily for their custom types.

Usage

Add toml [dependencies] constdefault = { version = "1.0", features = ["derive"] } to your Cargo.toml to start using it.

Examples

Rust Primitives

```rust use constdefault::ConstDefault;

fn main() { asserteq!(::DEFAULT, 0); asserteq!( as ConstDefault>::DEFAULT, None); asserteq!(::DEFAULT, String::new()); asserteq!( as ConstDefault>::DEFAULT, Vec::new()); } ```

Derive

```rust use constdefault::ConstDefault;

[derive(ConstDefault, Debug, Default, PartialEq)]

pub struct Color { r: u8, g: u8, b: u8, }

fn main() { assert_eq!( ::DEFAULT, Color::default(), ); } ```