diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-04-24 13:30:22 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-04-24 13:30:22 +0200 |
commit | 2987c24a46f3895afd85edd5f3c262776e7fa47e (patch) | |
tree | d368de1354d41579372fd12fdc87ca22f2cb54c5 /src/buildable.rs | |
parent | a834f3c5eb10de3dbc1fb51d017cbee4483830ff (diff) | |
parent | 053a8eb004a2d44505233bf37d7e8e85a0a2f1ce (diff) |
Merge branch 'vec-example'
Diffstat (limited to 'src/buildable.rs')
-rw-r--r-- | src/buildable.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/buildable.rs b/src/buildable.rs index 22f6d0a..95382e7 100644 --- a/src/buildable.rs +++ b/src/buildable.rs @@ -1,4 +1,5 @@ use crate::ValueBuilder; +use crate::CollectionBuilder; use crate::Backend; // A value that can be built interactively, using a Backend @@ -162,3 +163,23 @@ impl BuildableValue for String { } } + + +pub trait BuildableCollection { + fn builder<E, B>(backend: B) -> Box<dyn CollectionBuilder<Output = Self, Error = E>> + where E: Sized, + B: Backend<Error = E> + ; +} + +impl<T> BuildableCollection for Vec<T> + where T: 'static + BuildableValue +{ + fn builder<E, B>(backend: B) -> Box<dyn CollectionBuilder<Output = Self, Error = E>> + where E: Sized, + B: Backend<Error = E> + { + backend.vec_builder::<T>() + } +} + |