GXHandle

Struct GXHandle 

Source
pub struct GXHandle<X: GXExt>(/* private fields */);
Expand description

A handle to a running GX instance.

Drop the handle to shutdown the associated background tasks.

Implementations§

Source§

impl<X: GXExt> GXHandle<X>

Source

pub async fn get_env(&self) -> Result<Env<GXRt<X>, X::UserEvent>>

Get a copy of the current graphix environment

Source

pub async fn check(&self, path: Source) -> Result<()>

Check that a graphix module compiles

If path startes with netidx: then the module will be loaded from netidx, otherwise it will be loaded from the filesystem. If the file compiles successfully return Ok(()) otherwise an error describing the problem. The environment will not be altered by checking an expression, so you will not be able to use any defined names later in the program. If you want to do that see compile.

Source

pub async fn compile(&self, text: ArcStr) -> Result<CompRes<X>>

Compile and execute a graphix expression

If it generates results, they will be sent to all the channels that are subscribed. When the CompExp objects contained in the CompRes are dropped their corresponding expressions will be deleted. Therefore, you can stop execution of the whole expression by dropping the returned CompRes.

Source

pub async fn load(&self, path: Source) -> Result<CompRes<X>>

Load and execute a file or netidx value

When the CompExp objects contained in the CompRes are dropped their corresponding expressions will be deleted. Therefore, you can stop execution of the whole file by dropping the returned CompRes.

Source

pub async fn compile_callable(&self, id: Value) -> Result<Callable<X>>

Compile a callable interface to a lambda id

This is how you call a lambda directly from rust. When the returned Callable is dropped the associated callsite will be delete.

Source

pub async fn compile_callable_by_name( &self, env: &Env<GXRt<X>, X::UserEvent>, scope: &Scope, name: &ModPath, ) -> Result<NamedCallable<X>>

Compile a callable interface to a late bound function by name

This allows you to call a function by name. Because of late binding it has some additional complexity (though less than implementing it yourself). You must call update on NamedCallable when you recieve updates from the runtime in order to drive late binding. update will also return Some when one of your function calls returns.

Source

pub async fn compile_ref(&self, id: impl Into<BindId>) -> Result<Ref<X>>

Compile a ref to a bind id

This will NOT return an error if the id isn’t in the environment.

Source

pub async fn compile_ref_by_name( &self, env: &Env<GXRt<X>, X::UserEvent>, scope: &Scope, name: &ModPath, ) -> Result<Ref<X>>

Compile a ref to a name

Return an error if the name does not exist in the environment

Source

pub fn set<T: Into<Value>>(&self, id: BindId, v: T) -> Result<()>

Set the variable idenfified by id to v

triggering updates of all dependent node trees. This does the same thing asRef::set and TRef::set

Trait Implementations§

Source§

impl<X: GXExt> Clone for GXHandle<X>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<X: GXExt> Debug for GXHandle<X>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<X> Freeze for GXHandle<X>

§

impl<X> RefUnwindSafe for GXHandle<X>

§

impl<X> Send for GXHandle<X>

§

impl<X> Sync for GXHandle<X>

§

impl<X> Unpin for GXHandle<X>

§

impl<X> UnwindSafe for GXHandle<X>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V