xreflect_core/builder.rs
1pub trait EnumBuildable: Sized {
2 fn build(enum_member_name: &'static str) -> impl Builder<Self>;
3}
4pub trait StructBuildable: Sized {
5 fn build() -> impl Builder<Self>;
6}
7pub trait Builder<B: Sized>: Sized {
8 fn with_field<T: 'static>(self, field_name: &'static str, field_value: T) -> Self;
9 fn with_field_at<T: 'static>(self, field_index: usize, field_value: T) -> Self;
10 fn try_build(self) -> Result<B, ()>;
11 fn build(self) -> B {
12 self.try_build().unwrap()
13 }
14}