Send/Sync for MappableOrigin

This commit is contained in:
AF 2023-05-14 09:10:59 +00:00
parent d09e99b112
commit f0170910f6

View File

@ -13,8 +13,10 @@ pub fn wrapped_origin<'a, Ctx: 'a + Context, A: Mentionable<'a, Ctx>>(
pub trait MappableOrigin<'a, Ctx: 'a + Context>: Origin<'a, Ctx> { pub trait MappableOrigin<'a, Ctx: 'a + Context>: Origin<'a, Ctx> {
fn map<B: Mentionable<'a, Ctx>>( fn map<B: Mentionable<'a, Ctx>>(
self: Rc<Self>, self: Rc<Self>,
map_ok: impl 'a + Clone + Fn(Rc<Self::Mtbl>) -> B, map_ok: impl 'a + Send + Sync + Clone + Fn(Rc<Self::Mtbl>) -> B,
map_err: impl 'a map_err: impl 'a
+ Send
+ Sync
+ Clone + Clone
+ Fn( + Fn(
<<Self::Mtbl as Mentionable<'a, Ctx>>::Fctr as Factory<'a, Ctx>>::ParseError, <<Self::Mtbl as Mentionable<'a, Ctx>>::Fctr as Factory<'a, Ctx>>::ParseError,
@ -26,8 +28,10 @@ pub trait MappableOrigin<'a, Ctx: 'a + Context>: Origin<'a, Ctx> {
impl<'a, Ctx: 'a + Context, O: ?Sized + Origin<'a, Ctx>> MappableOrigin<'a, Ctx> for O { impl<'a, Ctx: 'a + Context, O: ?Sized + Origin<'a, Ctx>> MappableOrigin<'a, Ctx> for O {
fn map<B: Mentionable<'a, Ctx>>( fn map<B: Mentionable<'a, Ctx>>(
self: Rc<Self>, self: Rc<Self>,
map_ok: impl 'a + Clone + Fn(Rc<Self::Mtbl>) -> B, map_ok: impl 'a + Send + Sync + Clone + Fn(Rc<Self::Mtbl>) -> B,
map_err: impl 'a map_err: impl 'a
+ Send
+ Sync
+ Clone + Clone
+ Fn( + Fn(
<<Self::Mtbl as Mentionable<'a, Ctx>>::Fctr as Factory<'a, Ctx>>::ParseError, <<Self::Mtbl as Mentionable<'a, Ctx>>::Fctr as Factory<'a, Ctx>>::ParseError,