diff --git a/crates/jackdaw_api_internal/src/lib.rs b/crates/jackdaw_api_internal/src/lib.rs index e3bbf39b..1592b5bd 100644 --- a/crates/jackdaw_api_internal/src/lib.rs +++ b/crates/jackdaw_api_internal/src/lib.rs @@ -1,4 +1,5 @@ #![feature(try_trait_v2)] +#![feature(try_trait_v2_residual)] //! Public API for Jackdaw editor extensions. //! //! Extensions are entities. An extension entity holds an [`lifecycle::Extension`] diff --git a/crates/jackdaw_api_internal/src/operator.rs b/crates/jackdaw_api_internal/src/operator.rs index e79f08cd..0b38a7d4 100644 --- a/crates/jackdaw_api_internal/src/operator.rs +++ b/crates/jackdaw_api_internal/src/operator.rs @@ -2,7 +2,7 @@ use std::{ borrow::Cow, collections::BTreeMap, convert::Infallible, - ops::{ControlFlow, FromResidual, Try}, + ops::{ControlFlow, FromResidual, Residual, Try}, }; use bevy::ecs::system::{SystemId, SystemState}; @@ -305,6 +305,10 @@ impl FromResidual> for OperatorResult { } } +impl Residual<()> for OperatorCancelled { + type TryType = OperatorResult; +} + /// Extension trait on [`World`] for calling operators by id. /// /// Usage: