use type_state_builder::TypeStateBuilder;
#[derive(TypeStateBuilder)]
struct MixedOptions {
#[builder(required)]
name: String,
age: u32,
email: Option<String>,
#[builder(default = 42)]
score: i32, }
#[test]
fn test_mixed_options() {
let instance = MixedOptions::builder()
.name("Alice".to_string())
.age(30)
.email(Some("alice@example.com".to_string()))
.build();
assert_eq!(instance.name, "Alice");
assert_eq!(instance.age, 30);
assert_eq!(instance.email, Some("alice@example.com".to_string()));
assert_eq!(instance.score, 42);
}
#[test]
fn test_mixed_options_defaults() {
let instance = MixedOptions::builder().name("Bob".to_string()).build();
assert_eq!(instance.name, "Bob");
assert_eq!(instance.age, 0); assert_eq!(instance.email, None); assert_eq!(instance.score, 42); }