From 34f4f36550f2ab8f20e760b3576914105d7bca0b Mon Sep 17 00:00:00 2001 From: timofey Date: Sun, 3 Sep 2023 19:37:19 +0000 Subject: [PATCH] `SingularResolver::robust` --- src/rstd/singular.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/rstd/singular.rs b/src/rstd/singular.rs index 3295537..ed5a4ca 100644 --- a/src/rstd/singular.rs +++ b/src/rstd/singular.rs @@ -40,7 +40,7 @@ pub struct SingularResolver<'a, Ctx: Context<'a>> { points: Vec>>, } -pub struct SingularRobust<'a, Ctx: Context<'a>> { +struct SingularRobust<'a, Ctx: Context<'a>> { resolver: Arc>, } @@ -105,6 +105,16 @@ impl<'a, Ctx: Context<'a>> SingularResolver<'a, Ctx> { Ok(point.clone().singular()) } } + + pub fn robust(self) -> Arc> + where + Ctx: SingularCtx<'a>, + { + SingularRobust { + resolver: self.into(), + } + .into_rc() + } } impl<'a, Ctx: Context<'a>> Resolver<'a, Ctx> for SingularResolver<'a, Ctx> { @@ -113,7 +123,7 @@ impl<'a, Ctx: Context<'a>> Resolver<'a, Ctx> for SingularResolver<'a, Ctx> { } } -trait SingularCtx<'a>: Context<'a> { +pub trait SingularCtx<'a>: Context<'a> { fn from_singular(error: SingularError) -> Self::LookupError; }