Setters
A field receives its setter implementation using the set
helper argument:
use fieldx::fxstruct;
#[fxstruct(get, builder)]
struct Book {
title: String,
author: String,
year: u32,
#[fieldx(get(copy), set)]
available: u16,
#[fieldx(set("place_into"))]
location: String,
}
let mut book = Book::builder()
.title("The Hitchhiker's Guide to the Galaxy".to_string())
.author("Douglas Adams".to_string())
.year(1979)
.available(1)
.location("R12.S2".to_string()) // Row 12, Section 2
.build()
.expect("Failed to create book");
book.set_available(2);
book.place_into("R12.S3".to_string());
assert_eq!(book.available(), 2);
assert_eq!(book.location(), "R12.S3");