ClientState

Struct ClientState 

Source
pub struct ClientState<E, SP> { /* private fields */ }
Expand description

Keeps track of client graph state.

Implementations§

Source§

impl<E, SP> ClientState<E, SP>

Source

pub const fn new(engine: E, provider: SP) -> Self

Creates a ClientState.

Source

pub fn provider(&mut self) -> &mut SP

Provide access to the StorageProvider.

Source§

impl<E, SP> ClientState<E, SP>
where E: Engine, SP: StorageProvider,

Source

pub fn new_graph( &mut self, policy_data: &[u8], action: <E::Policy as Policy>::Action<'_>, sink: &mut impl Sink<E::Effect>, ) -> Result<GraphId, ClientError>

Create a new graph (AKA Team). This graph will start with the initial policy provided which must be compatible with the engine E. The payload is the initial init message that will bootstrap the graph facts. Effects produced when processing the payload are emitted to the sink.

Source

pub fn remove_graph(&mut self, graph_id: GraphId) -> Result<(), ClientError>

Remove a graph (AKA Team). The graph commands will be removed from storage.

Source

pub fn commit( &mut self, trx: &mut Transaction<SP, E>, sink: &mut impl Sink<E::Effect>, ) -> Result<(), ClientError>

Commit the Transaction to storage, after merging all temporary heads.

Source

pub fn add_commands( &mut self, trx: &mut Transaction<SP, E>, sink: &mut impl Sink<E::Effect>, commands: &[impl Command], ) -> Result<usize, ClientError>

Add commands to the transaction, writing the results to sink. Returns the number of commands that were added.

Source

pub fn update_heads( &mut self, storage_id: GraphId, addrs: impl IntoIterator<Item = Address>, request_heads: &mut PeerCache, ) -> Result<(), ClientError>

Source

pub fn head_address( &mut self, storage_id: GraphId, ) -> Result<Address, ClientError>

Returns the address of the head of the graph.

Source

pub fn action( &mut self, storage_id: GraphId, sink: &mut impl Sink<E::Effect>, action: <E::Policy as Policy>::Action<'_>, ) -> Result<(), ClientError>

Performs an action, writing the results to sink.

Source§

impl<E, SP> ClientState<E, SP>
where SP: StorageProvider,

Source

pub fn transaction(&mut self, storage_id: GraphId) -> Transaction<SP, E>

Create a new Transaction, used to receive Commands when syncing.

Source

pub fn session( &mut self, storage_id: GraphId, ) -> Result<Session<SP, E>, ClientError>

Create an ephemeral Session associated with this client.

Source

pub fn command_exists(&mut self, storage_id: GraphId, address: Address) -> bool

Checks if a command with the given address exists in the specified graph.

Returns true if the command exists, false if it doesn’t exist or the graph doesn’t exist. This method is used to determine if we need to sync when a hello message is received.

Trait Implementations§

Source§

impl<E: Debug, SP: Debug> Debug for ClientState<E, SP>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<E, SP> Freeze for ClientState<E, SP>
where E: Freeze, SP: Freeze,

§

impl<E, SP> RefUnwindSafe for ClientState<E, SP>

§

impl<E, SP> Send for ClientState<E, SP>
where E: Send, SP: Send,

§

impl<E, SP> Sync for ClientState<E, SP>
where E: Sync, SP: Sync,

§

impl<E, SP> Unpin for ClientState<E, SP>
where E: Unpin, SP: Unpin,

§

impl<E, SP> UnwindSafe for ClientState<E, SP>
where E: UnwindSafe, SP: UnwindSafe,

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> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,