diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-04-24 17:08:47 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-04-24 17:18:01 +0200 |
commit | fb2bc2e64cda462a8be0acb19863796647d180d6 (patch) | |
tree | 6a3dd3d3418e66c729b455a0fdb0d62fc501f072 /src/lib.rs | |
parent | 2784016116c85decb24feb837c36a9ac4eb9758d (diff) |
Make error type explicit
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 92 |
1 files changed, 44 insertions, 48 deletions
@@ -7,6 +7,9 @@ pub use crate::buildable::*; pub mod collection_builder; pub use crate::collection_builder::*; +pub mod error; +pub use crate::error::*; + pub mod value_builder; pub use crate::value_builder::*; @@ -17,65 +20,63 @@ mod dummy_bool_test { struct DummyBackend; impl Backend for DummyBackend { - type Error = (); - - fn bool_builder(&self) -> Box<dyn ValueBuilder<Output = bool, Error = Self::Error>> { + fn bool_builder(&self) -> Box<dyn ValueBuilder<Output = bool>> { Box::new(BoolValBuilder) } - fn u8_builder(&self) -> Box<dyn ValueBuilder<Output = u8, Error = Self::Error>> { + fn u8_builder(&self) -> Box<dyn ValueBuilder<Output = u8>> { unimplemented!() } - fn u16_builder(&self) -> Box<dyn ValueBuilder<Output = u16, Error = Self::Error>> { + fn u16_builder(&self) -> Box<dyn ValueBuilder<Output = u16>> { unimplemented!() } - fn u32_builder(&self) -> Box<dyn ValueBuilder<Output = u32, Error = Self::Error>> { + fn u32_builder(&self) -> Box<dyn ValueBuilder<Output = u32>> { unimplemented!() } - fn u64_builder(&self) -> Box<dyn ValueBuilder<Output = u64, Error = Self::Error>> { + fn u64_builder(&self) -> Box<dyn ValueBuilder<Output = u64>> { unimplemented!() } - fn u128_builder(&self) -> Box<dyn ValueBuilder<Output = u128, Error = Self::Error>> { + fn u128_builder(&self) -> Box<dyn ValueBuilder<Output = u128>> { unimplemented!() } - fn i8_builder(&self) -> Box<dyn ValueBuilder<Output = i8, Error = Self::Error>> { + fn i8_builder(&self) -> Box<dyn ValueBuilder<Output = i8>> { unimplemented!() } - fn i16_builder(&self) -> Box<dyn ValueBuilder<Output = i16, Error = Self::Error>> { + fn i16_builder(&self) -> Box<dyn ValueBuilder<Output = i16>> { unimplemented!() } - fn i32_builder(&self) -> Box<dyn ValueBuilder<Output = i32, Error = Self::Error>> { + fn i32_builder(&self) -> Box<dyn ValueBuilder<Output = i32>> { unimplemented!() } - fn i64_builder(&self) -> Box<dyn ValueBuilder<Output = i64, Error = Self::Error>> { + fn i64_builder(&self) -> Box<dyn ValueBuilder<Output = i64>> { unimplemented!() } - fn i128_builder(&self) -> Box<dyn ValueBuilder<Output = i128, Error = Self::Error>> { + fn i128_builder(&self) -> Box<dyn ValueBuilder<Output = i128>> { unimplemented!() } - fn usize_builder(&self) -> Box<dyn ValueBuilder<Output = usize, Error = Self::Error>> { + fn usize_builder(&self) -> Box<dyn ValueBuilder<Output = usize>> { unimplemented!() } - fn isize_builder(&self) -> Box<dyn ValueBuilder<Output = isize, Error = Self::Error>> { + fn isize_builder(&self) -> Box<dyn ValueBuilder<Output = isize>> { unimplemented!() } - fn f32_builder(&self) -> Box<dyn ValueBuilder<Output = f32, Error = Self::Error>> { + fn f32_builder(&self) -> Box<dyn ValueBuilder<Output = f32>> { unimplemented!() } - fn f64_builder(&self) -> Box<dyn ValueBuilder<Output = f64, Error = Self::Error>> { + fn f64_builder(&self) -> Box<dyn ValueBuilder<Output = f64>> { unimplemented!() } - fn char_builder(&self) -> Box<dyn ValueBuilder<Output = char, Error = Self::Error>> { + fn char_builder(&self) -> Box<dyn ValueBuilder<Output = char>> { unimplemented!() } - fn string_builder(&self) -> Box<dyn ValueBuilder<Output = String, Error = Self::Error>> { + fn string_builder(&self) -> Box<dyn ValueBuilder<Output = String>> { unimplemented!() } - fn option_builder<T: 'static + BuildableValue>(&self) -> Box<dyn CollectionBuilder<Output = Option<T>, Error = Self::Error>> { + fn option_builder<T: 'static + BuildableValue>(&self) -> Box<dyn CollectionBuilder<Output = Option<T>>> { unimplemented!() } - 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 { unimplemented!() @@ -85,9 +86,8 @@ mod dummy_bool_test { struct BoolValBuilder; impl ValueBuilder for BoolValBuilder { type Output = bool; - type Error = (); - fn build_value(&self, _question: &str) -> Result<Self::Output, Self::Error> { + fn build_value(&self, _question: &str) -> Result<Self::Output> { Ok(true) } } @@ -106,63 +106,61 @@ mod vec_test { struct DummyBackend; impl Backend for DummyBackend { - type Error = (); - - fn bool_builder(&self) -> Box<dyn ValueBuilder<Output = bool, Error = Self::Error>> { + fn bool_builder(&self) -> Box<dyn ValueBuilder<Output = bool>> { Box::new(BoolValBuilder) } - fn u8_builder(&self) -> Box<dyn ValueBuilder<Output = u8, Error = Self::Error>> { + fn u8_builder(&self) -> Box<dyn ValueBuilder<Output = u8>> { unimplemented!() } - fn u16_builder(&self) -> Box<dyn ValueBuilder<Output = u16, Error = Self::Error>> { + fn u16_builder(&self) -> Box<dyn ValueBuilder<Output = u16>> { unimplemented!() } - fn u32_builder(&self) -> Box<dyn ValueBuilder<Output = u32, Error = Self::Error>> { + fn u32_builder(&self) -> Box<dyn ValueBuilder<Output = u32>> { unimplemented!() } - fn u64_builder(&self) -> Box<dyn ValueBuilder<Output = u64, Error = Self::Error>> { + fn u64_builder(&self) -> Box<dyn ValueBuilder<Output = u64>> { unimplemented!() } - fn u128_builder(&self) -> Box<dyn ValueBuilder<Output = u128, Error = Self::Error>> { + fn u128_builder(&self) -> Box<dyn ValueBuilder<Output = u128>> { unimplemented!() } - fn i8_builder(&self) -> Box<dyn ValueBuilder<Output = i8, Error = Self::Error>> { + fn i8_builder(&self) -> Box<dyn ValueBuilder<Output = i8>> { unimplemented!() } - fn i16_builder(&self) -> Box<dyn ValueBuilder<Output = i16, Error = Self::Error>> { + fn i16_builder(&self) -> Box<dyn ValueBuilder<Output = i16>> { unimplemented!() } - fn i32_builder(&self) -> Box<dyn ValueBuilder<Output = i32, Error = Self::Error>> { + fn i32_builder(&self) -> Box<dyn ValueBuilder<Output = i32>> { unimplemented!() } - fn i64_builder(&self) -> Box<dyn ValueBuilder<Output = i64, Error = Self::Error>> { + fn i64_builder(&self) -> Box<dyn ValueBuilder<Output = i64>> { unimplemented!() } - fn i128_builder(&self) -> Box<dyn ValueBuilder<Output = i128, Error = Self::Error>> { + fn i128_builder(&self) -> Box<dyn ValueBuilder<Output = i128>> { unimplemented!() } - fn usize_builder(&self) -> Box<dyn ValueBuilder<Output = usize, Error = Self::Error>> { + fn usize_builder(&self) -> Box<dyn ValueBuilder<Output = usize>> { unimplemented!() } - fn isize_builder(&self) -> Box<dyn ValueBuilder<Output = isize, Error = Self::Error>> { + fn isize_builder(&self) -> Box<dyn ValueBuilder<Output = isize>> { unimplemented!() } - fn f32_builder(&self) -> Box<dyn ValueBuilder<Output = f32, Error = Self::Error>> { + fn f32_builder(&self) -> Box<dyn ValueBuilder<Output = f32>> { unimplemented!() } - fn f64_builder(&self) -> Box<dyn ValueBuilder<Output = f64, Error = Self::Error>> { + fn f64_builder(&self) -> Box<dyn ValueBuilder<Output = f64>> { unimplemented!() } - fn char_builder(&self) -> Box<dyn ValueBuilder<Output = char, Error = Self::Error>> { + fn char_builder(&self) -> Box<dyn ValueBuilder<Output = char>> { unimplemented!() } - fn string_builder(&self) -> Box<dyn ValueBuilder<Output = String, Error = Self::Error>> { + fn string_builder(&self) -> Box<dyn ValueBuilder<Output = String>> { unimplemented!() } - fn option_builder<T: 'static + BuildableValue>(&self) -> Box<dyn CollectionBuilder<Output = Option<T>, Error = Self::Error>> { + fn option_builder<T: 'static + BuildableValue>(&self) -> Box<dyn CollectionBuilder<Output = Option<T>>> { unimplemented!() } - 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 { Box::new(VecBuilder::<T>(std::marker::PhantomData)) @@ -172,9 +170,8 @@ mod vec_test { struct BoolValBuilder; impl ValueBuilder for BoolValBuilder { type Output = bool; - type Error = (); - fn build_value(&self, _question: &str) -> Result<Self::Output, Self::Error> { + fn build_value(&self, _question: &str) -> Result<Self::Output> { Ok(true) } } @@ -182,9 +179,8 @@ mod vec_test { pub struct VecBuilder<T: 'static + BuildableValue>(std::marker::PhantomData<T>); impl<T: BuildableValue> CollectionBuilder for VecBuilder<T> { type Output = Vec<T>; - type Error = (); - fn build_collection(&self, value_desc: &str) -> Result<Self::Output, Self::Error> { + fn build_collection(&self, value_desc: &str) -> Result<Self::Output> { let mut buf = vec![]; loop { |