Expand description
§smile-marco provides macros such as Getter, Setter, Wither, Builder, etc
These macros generate methods such as get, set, with, and builder for properties within a struct, providing quick access and manipulation.
Convenient for daily development.
[dependencies]
smile-marco = { version = "1.0.0", features = ["full"] }
#or
smile-marco = { version = "1.0.0"}If needed, use partial macros.
[dependencies]
smile-marco = { version = "1.0.0", features = ["getter","setter"] }§Example
use smile_marco::{Builder, Getter, Setter, Wither};
#[derive(Builder, Getter, Setter, Wither)]
struct Book {
title: String,
#[name(cost)] // rename
price: i32,
#[exclude] // Do not generate set methods for author
author: String,
}
let mut book = Book::builder()
.title("Rust Programming".to_string())
.price(100)
.author("rust".to_string())
.build();
assert_eq!(book.title, "Rust Programming".to_string());
book.set_title("Rust Book".into());
assert_eq!(book.title, "Rust Book".to_string());
assert_eq!(book.get_cost(), &100);
let mut book = book.with_cost(|c| c + 100);
assert_eq!(book.price, 200);Attribute Macros§
- data
- data macro