summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-04-24 17:08:47 +0200
committerMatthias Beyer <mail@beyermatthias.de>2021-04-24 17:18:01 +0200
commitfb2bc2e64cda462a8be0acb19863796647d180d6 (patch)
tree6a3dd3d3418e66c729b455a0fdb0d62fc501f072 /src/lib.rs
parent2784016116c85decb24feb837c36a9ac4eb9758d (diff)
Make error type explicit
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs92
1 files changed, 44 insertions, 48 deletions
diff --git a/src/lib.rs b/src/lib.rs
index f7ef93b..9a89f37 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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 {