diff --git a/src/rstd/collections/pair.rs b/src/rstd/collections/pair.rs index 9a966e7..a4afd60 100644 --- a/src/rstd/collections/pair.rs +++ b/src/rstd/collections/pair.rs @@ -113,3 +113,25 @@ impl Serializable for (A, B) { StaticPairObject::::serialize_sp(self, serializer) } } + +impl<'a, Ctx: Context<'a>, A: MentionableBase<'a, Ctx>, B: MentionableBase<'a, Ctx>> + MentionableBase<'a, Ctx> for (A, B) +{ + type Fctr = (A::Fctr, B::Fctr); + + fn factory(&self) -> Self::Fctr { + (self.0.factory(), self.1.factory()) + } +} + +impl<'a, Ctx: Context<'a>, FA: FactoryBase<'a, Ctx>, FB: FactoryBase<'a, Ctx>> FactoryBase<'a, Ctx> + for (FA, FB) +{ + type Mtbl = (FA::Mtbl, FB::Mtbl); + + type ParseError = PairParseError; +} + +impl AtomicBase for (A, B) { + type AParseError = PairParseError; +}