type-state-builder 0.5.1

Type-state builder pattern derive macro with compile-time safety and enhanced ergonomics.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use type_state_builder::TypeStateBuilder;

#[derive(TypeStateBuilder)]
struct Config {
    #[builder(required)]
    api_key: String,
    
    #[builder(required)]
    endpoint: String,
    
    timeout: Option<u32>,
}

fn main() {
    // This should fail: trying to build without setting any required fields
    let config = Config::builder().build(); // Error: missing required fields 'api_key' and 'endpoint'
}