mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
Make the dynamic node graph execution asynchronous (#1218)
* Make node graph execution async Make node macro generate async node implementations Start propagating async through the node system Async checkpoint Make Any<'i> Send + Sync Determine node io type using panic node Fix types for raster_node macro Finish porting node registry? Fix lifetime errors Remove Send + Sync requirements and start making node construction async Async MVP Fix tests Clippy fix * Fix nodes * Simplify lifetims for node macro + make node macro more modular * Reenable more nodes * Fix pasting images * Remove http test from brush node * Fix output type for cache node * Fix types for let scope * Fix formatting
This commit is contained in:
committed by
Keavon Chambers
parent
5c7211cb30
commit
4bd9fbd073
@@ -637,7 +637,7 @@ mod tests {
|
||||
|
||||
let outline = subpath.outline(10., crate::Join::Round, crate::Cap::Round).0;
|
||||
assert!(outline.manipulator_groups.windows(2).all(|pair| !pair[0].anchor.abs_diff_eq(pair[1].anchor, MAX_ABSOLUTE_DIFFERENCE)));
|
||||
assert_eq!(outline.closed(), true);
|
||||
assert!(outline.closed());
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
||||
@@ -193,9 +193,18 @@ unsafe impl<T: StaticTypeSized, const N: usize> StaticType for [T; N] {
|
||||
type Static = [<T as StaticTypeSized>::Static; N];
|
||||
}
|
||||
|
||||
unsafe impl<'a> StaticType for dyn DynAny<'a> + '_ {
|
||||
unsafe impl StaticType for dyn for<'i> DynAny<'_> + '_ {
|
||||
type Static = dyn DynAny<'static>;
|
||||
}
|
||||
unsafe impl StaticType for dyn for<'i> DynAny<'_> + Send + Sync + '_ {
|
||||
type Static = dyn DynAny<'static> + Send + Sync;
|
||||
}
|
||||
unsafe impl<T: StaticTypeSized> StaticType for dyn core::future::Future<Output = T> + Send + Sync + '_ {
|
||||
type Static = dyn core::future::Future<Output = T::Static> + Send + Sync;
|
||||
}
|
||||
unsafe impl<T: StaticTypeSized> StaticType for dyn core::future::Future<Output = T> + '_ {
|
||||
type Static = dyn core::future::Future<Output = T::Static>;
|
||||
}
|
||||
#[cfg(feature = "alloc")]
|
||||
pub trait IntoDynAny<'n>: Sized + StaticType + 'n {
|
||||
fn into_dyn(self) -> Box<dyn DynAny<'n> + 'n> {
|
||||
@@ -228,13 +237,14 @@ use core::{
|
||||
mem::{ManuallyDrop, MaybeUninit},
|
||||
num::Wrapping,
|
||||
ops::Range,
|
||||
pin::Pin,
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
impl_type!(
|
||||
Option<T>, Result<T, E>, Cell<T>, UnsafeCell<T>, RefCell<T>, MaybeUninit<T>,
|
||||
ManuallyDrop<T>, PhantomData<T>, PhantomPinned, Empty<T>, Range<T>,
|
||||
Wrapping<T>, Duration, bool, f32, f64, char,
|
||||
Wrapping<T>, Pin<T>, Duration, bool, f32, f64, char,
|
||||
u8, AtomicU8, u16, AtomicU16, u32, AtomicU32, u64, usize, AtomicUsize,
|
||||
i8, AtomicI8, i16, AtomicI16, i32, AtomicI32, i64, isize, AtomicIsize,
|
||||
i128, u128, AtomicBool, AtomicPtr<T>
|
||||
|
||||
Reference in New Issue
Block a user