Releases: tomoikey/typesafe_builder
Releases · tomoikey/typesafe_builder
v1.6
v1.5
v1.4
v1.3
v1.2
What's Changed
fn lifetime_and_generic_struct_success() {
#[derive(Builder, PartialEq)]
struct ComplexConfig<'a, T> {
#[builder(required)]
name: &'a str,
#[builder(optional)]
value: Option<T>,
}
let config1: ComplexConfig<'_, i32> = ComplexConfigBuilder::new().with_name("test").build();
assert_eq!(config1.name, "test");
assert_eq!(config1.value, None);
let config2 = ComplexConfigBuilder::new()
.with_name("test")
.with_value(100i32)
.build();
assert_eq!(config2.name, "test");
assert_eq!(config2.value, Some(100));
}
fn generic_struct_where_clause_success() {
#[derive(Builder)]
struct Container<T>
where
T: Clone,
{
#[builder(required)]
value: T,
}
let container = ContainerBuilder::new().with_value(42i32).build();
assert_eq!(container.value, 42);
let container = ContainerBuilder::new()
.with_value("hello".to_string())
.build();
assert_eq!(container.value, "hello");
}
New Contributors
Full Changelog: v1.1...v1.2
v1.1
🚀 Just released stable version !!!
✨ Features:
- Compile-time type safety
- Complex conditional logic (AND/OR/NOT)
- required_if / optional_if for dynamic constraints
Perfect for eliminating bugs at the type level. Check it out!