diff --git a/src/rstd/singular.rs b/src/rstd/singular.rs index acb7e06..998122e 100644 --- a/src/rstd/singular.rs +++ b/src/rstd/singular.rs @@ -21,10 +21,6 @@ pub struct SingularResolver<'a, Ctx: Context<'a>> { points: Vec>>, } -struct SingularRobust<'a, Ctx: Context<'a>> { - resolver: Arc>, -} - impl<'a, Ctx: Context<'a>> SingularResolver<'a, Ctx> { pub fn from_mentionable>(a: &A) -> Self { let mut points = Vec::new(); @@ -53,26 +49,11 @@ impl<'a, Ctx: Context<'a>> SingularResolver<'a, Ctx> { Ok(point.clone().singular()) } } - - pub fn robust(self) -> Arc> { - SingularRobust { - resolver: self.into(), - } - .into_rc() - } } impl<'a, Ctx: Context<'a>> Resolver<'a, Ctx> for SingularResolver<'a, Ctx> { fn resolve(self: Arc, address: Address) -> HashResolution<'a, Ctx> { - self.resolve_robust(address).unwrap() - } -} - -impl<'a, Ctx: Context<'a>> Resolver<'a, Ctx> for SingularRobust<'a, Ctx> { - fn resolve(self: Arc, address: Address) -> HashResolution<'a, Ctx> { - self.resolver - .clone() - .resolve_robust(address) + self.resolve_robust(address) .map_err(SingularError::into) .map_err(Err) .unwrap_or_else(Ctx::pure) diff --git a/src/rstd/tcast.rs b/src/rstd/tcast.rs index 6e5d97b..177ee92 100644 --- a/src/rstd/tcast.rs +++ b/src/rstd/tcast.rs @@ -8,7 +8,7 @@ pub trait CastMentionable<'a, Ctx: Context<'a>>: Mentionable<'a, Ctx> { fn m_cast>(&self, factory: &Fctr<'a, A>) -> ParseResultA<'a, A> { factory.parse_slice( &self.bytes(), - &SingularResolver::from_mentionable(self).robust(), + &SingularResolver::from_mentionable(self).into_rc(), ) } }