set_field_macro

Crates.ioset_field_macro
lib.rsset_field_macro
version0.1.1
sourcesrc
created_at2023-09-09 08:22:21.246518
updated_at2023-09-09 08:29:53.263901
descriptionDerive macro for set_field
homepagehttps://github.com/0xDEADFED5/set_field
repositoryhttps://github.com/0xDEADFED5/set_field
max_upload_size
id967995
size4,756
(0xDEADFED5)

documentation

README

Derive macro for set_field

see set_field

Example

use set_field::SetField;

#[derive(SetField)]
struct Foo {
	a: i32,
	b: Option<bool>,
	c: i32,
}
fn test() {
	let mut t = Foo { a: 777, b: None, c: 0 };
	// return true on success:
	assert_eq!(t.set_field("a", 888), true);
	// return true on success:
	assert_eq!(t.set_field("b", Some(true)), true);
	assert_eq!(t.a, 888);
	assert_eq!(t.b, Some(true));
	// return false on nonexistent field:
	assert_eq!(t.set_field("d", 0), false);
	// return false on wrong type:
	assert_eq!(t.set_field("b", 0), false);
	// won't compile:
	// assert_eq!(t.set_field("a", 0.0), false);
}
Commit count: 3

cargo fmt