Skip to main content

AimxClient

Struct AimxClient 

Source
pub struct AimxClient { /* private fields */ }
Expand description

AimX protocol client

Implementations§

Source§

impl AimxClient

Source

pub async fn connect(socket_path: impl AsRef<Path>) -> ClientResult<Self>

Connect to an AimDB instance

Source

pub fn server_info(&self) -> &WelcomeMessage

Get server information

Source

pub async fn list_records(&mut self) -> ClientResult<Vec<RecordMetadata>>

List all registered records

Source

pub async fn get_record(&mut self, name: &str) -> ClientResult<Value>

Get current value of a record

Source

pub async fn set_record( &mut self, name: &str, value: Value, ) -> ClientResult<Value>

Set value of a writable record

Source

pub async fn subscribe( &mut self, name: &str, queue_size: usize, ) -> ClientResult<String>

Subscribe to record updates

Source

pub async fn unsubscribe(&mut self, subscription_id: &str) -> ClientResult<()>

Unsubscribe from record updates

Source

pub async fn receive_event(&mut self) -> ClientResult<Event>

Receive next event from subscription

Source

pub async fn drain_record(&mut self, name: &str) -> ClientResult<DrainResponse>

Drain all pending values from a record’s drain reader.

Returns all values accumulated since the last drain call, in chronological order. This is a destructive read — drained values will not be returned again.

The first call for a given record creates the drain reader and returns empty (cold start). Subsequent calls return accumulated values.

Source

pub async fn drain_record_with_limit( &mut self, name: &str, limit: u32, ) -> ClientResult<DrainResponse>

Drain with a limit on the number of values returned.

Source

pub async fn graph_nodes(&mut self) -> ClientResult<Vec<Value>>

Get all nodes in the dependency graph.

Returns a list of GraphNode objects representing all records and their connections in the database.

Source

pub async fn graph_edges(&mut self) -> ClientResult<Vec<Value>>

Get all edges in the dependency graph.

Returns a list of GraphEdge objects representing data flow connections between records.

Source

pub async fn graph_topo_order(&mut self) -> ClientResult<Vec<String>>

Get the topological ordering of records.

Returns the record keys in topological order, ensuring all dependencies are listed before dependents. Useful for understanding data flow and initialization order.

Auto Trait Implementations§

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<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> 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, 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.