piece,
was_held,
);
- let unprepared = thunk.resolve(&mut ig, (player,));
+ let unprepared = thunk.and_then(|t| t.resolve(&mut ig, (player,)));
if let Ok(unprepared) = unprepared.map_err(
|e| error!("internal error on change hook: {:?}", e));
then {
fn zero() -> Self { UpdateId(0) }
}
-#[ext(pub)]
-impl<A,T,E> Result<OpOutcomeThunkGeneric<A,T,E>,E> {
- fn resolve(self, ig: &mut InstanceGuard, args: A) -> Result<T,E> {
+impl<A,T,E> OpOutcomeThunkGeneric<A,T,E> {
+ pub fn resolve(self, ig: &mut InstanceGuard, args: A) -> Result<T,E> {
match self {
- Err(e) => Err(e),
- Ok(OOTG::Immediate(uu)) => Ok(uu),
- Ok(OOTG::Reborrow(f)) => f(ig, args),
+ OOTG::Immediate(uu) => Ok(uu),
+ OOTG::Reborrow(f) => f(ig, args),
}
}
}