diff options
Diffstat (limited to 'src/backend/mod.rs')
-rw-r--r-- | src/backend/mod.rs | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/src/backend/mod.rs b/src/backend/mod.rs index 3f72d66..5884726 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -6,29 +6,27 @@ use crate::ValueBuilder; /// A backend can be used to get builders for specific types pub trait Backend { - type Error: Sized; + fn bool_builder(&self) -> Box<dyn ValueBuilder<Output = bool>>; + fn u8_builder(&self) -> Box<dyn ValueBuilder<Output = u8>>; + fn u16_builder(&self) -> Box<dyn ValueBuilder<Output = u16>>; + fn u32_builder(&self) -> Box<dyn ValueBuilder<Output = u32>>; + fn u64_builder(&self) -> Box<dyn ValueBuilder<Output = u64>>; + fn u128_builder(&self) -> Box<dyn ValueBuilder<Output = u128>>; + fn i8_builder(&self) -> Box<dyn ValueBuilder<Output = i8>>; + fn i16_builder(&self) -> Box<dyn ValueBuilder<Output = i16>>; + fn i32_builder(&self) -> Box<dyn ValueBuilder<Output = i32>>; + fn i64_builder(&self) -> Box<dyn ValueBuilder<Output = i64>>; + fn i128_builder(&self) -> Box<dyn ValueBuilder<Output = i128>>; + fn usize_builder(&self) -> Box<dyn ValueBuilder<Output = usize>>; + fn isize_builder(&self) -> Box<dyn ValueBuilder<Output = isize>>; + fn f32_builder(&self) -> Box<dyn ValueBuilder<Output = f32>>; + fn f64_builder(&self) -> Box<dyn ValueBuilder<Output = f64>>; + fn char_builder(&self) -> Box<dyn ValueBuilder<Output = char>>; + fn string_builder(&self) -> Box<dyn ValueBuilder<Output = String>>; - fn bool_builder(&self) -> Box<dyn ValueBuilder<Output = bool, Error = Self::Error>>; - fn u8_builder(&self) -> Box<dyn ValueBuilder<Output = u8, Error = Self::Error>>; - fn u16_builder(&self) -> Box<dyn ValueBuilder<Output = u16, Error = Self::Error>>; - fn u32_builder(&self) -> Box<dyn ValueBuilder<Output = u32, Error = Self::Error>>; - fn u64_builder(&self) -> Box<dyn ValueBuilder<Output = u64, Error = Self::Error>>; - fn u128_builder(&self) -> Box<dyn ValueBuilder<Output = u128, Error = Self::Error>>; - fn i8_builder(&self) -> Box<dyn ValueBuilder<Output = i8, Error = Self::Error>>; - fn i16_builder(&self) -> Box<dyn ValueBuilder<Output = i16, Error = Self::Error>>; - fn i32_builder(&self) -> Box<dyn ValueBuilder<Output = i32, Error = Self::Error>>; - fn i64_builder(&self) -> Box<dyn ValueBuilder<Output = i64, Error = Self::Error>>; - fn i128_builder(&self) -> Box<dyn ValueBuilder<Output = i128, Error = Self::Error>>; - fn usize_builder(&self) -> Box<dyn ValueBuilder<Output = usize, Error = Self::Error>>; - fn isize_builder(&self) -> Box<dyn ValueBuilder<Output = isize, Error = Self::Error>>; - fn f32_builder(&self) -> Box<dyn ValueBuilder<Output = f32, Error = Self::Error>>; - fn f64_builder(&self) -> Box<dyn ValueBuilder<Output = f64, Error = Self::Error>>; - fn char_builder(&self) -> Box<dyn ValueBuilder<Output = char, Error = Self::Error>>; - fn string_builder(&self) -> Box<dyn ValueBuilder<Output = String, Error = Self::Error>>; + fn option_builder<T: 'static + BuildableValue>(&self) -> Box<dyn CollectionBuilder<Output = Option<T>>>; - fn option_builder<T: 'static + BuildableValue>(&self) -> Box<dyn CollectionBuilder<Output = Option<T>, Error = Self::Error>>; - - fn vec_builder<T>(&self) -> Box<dyn CollectionBuilder<Output = Vec<T>, Error = Self::Error>> + fn vec_builder<T>(&self) -> Box<dyn CollectionBuilder<Output = Vec<T>>> where T: 'static + BuildableValue; } |