#dummy #macro #example #data #proc-macro

macro eg_derive

Procedural macros for the eg crate

1 unstable release

0.1.0 Sep 16, 2022

#40 in #example

26 downloads per month
Used in eg

MIT/Apache

6KB
115 lines

Eg: Default for dummy data.

github crates.io license

Why Eg?

Use Eg to provide example values:

use eg::Eg;

#[derive(Debug, PartialEq, Eg)]
struct Wizard {
	#[eg = "Harry Potter"]
	name: String,
	#[eg = "11"]
	age: usize,
	#[eg = "totally_random_spell"]
	fav_spell: Spell,
}

#[derive(Debug, PartialEq)]
enum Spell {
	Expelliarmus,
	WinguardiumLeviosa,
}

fn totally_random_spell() -> Spell {
	Spell::Expelliarmus
}

assert_eq!(
	Wizard {
		name: "Harry Potter".to_string(),
		age: 11,
		fav_spell: Spell::Expelliarmus
	},
	Wizard::eg()
);

When Default doesn't make sense, isn't available, or isn't expressive enough:

#[test]
fn my_database_test() {
	// database stuff ...
	db.insert(Wizard::eg());
	// more database stuff ...
}

Why not a global const?

In const-compatible contexts, this is probably an acceptable approach! For everything else, there's Eg 😉

Contribution

This crate is still learning to walk; feedback, issues and PRs are all welcome! (◕‿◕)

Dependencies

~1.5MB
~33K SLoC