From 84bd0580049995b9daff446c84c2791a3b6a6bb0 Mon Sep 17 00:00:00 2001 From: timofey Date: Sat, 5 Aug 2023 12:51:26 +0000 Subject: [PATCH] `*Base`s for tuple --- src/rstd/collections/pair.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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; +}