summaryrefslogtreecommitdiffstats
path: root/src/backend/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/mod.rs')
-rw-r--r--src/backend/mod.rs40
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;
}