usestd::collections::{BTreeMap, HashMap};/// `Bilift` lets you construct a type `T<C, D>` from a type `T<A, B>`.
////// If you have a type `T<A, B>` which implements `Biift<A, B, C ,D>`, you can derive the
/// type `T<C, D>` using `<T<A, B> as Bilift<A, B, C, D>>::Target`.
pubtraitBilift<A, B, C, D> {typeSource;typeTarget;}impl<A, B, C, D>Bilift<A, B, C, D>forResult<A, B>{typeSource=Self;typeTarget=Result<C, D>;}impl<A, B, C, D, S>Bilift<A, B, C, D>forHashMap<A, B, S>{typeSource=Self;typeTarget=HashMap<C, D, S>;}impl<A, B, C, D>Bilift<A, B, C, D>forBTreeMap<A, B>{typeSource=Self;typeTarget=BTreeMap<C, D>;}