pub struct Client<F: Format> { /* private fields */ }
Expand description

RPC client for the Supermarket interface.

Implementations§

source§

impl<F: Format> Client<F>

source

pub fn new(peer: PeerWriteHandle<F::Body>) -> Self

Create a new interface-specific RPC client from a raw write handle.

source

pub fn close(self)

Close the connection with the remote peer.

source

pub fn close_handle(&self) -> PeerCloseHandle<F::Body>

Make a close handle for the peer.

The close handle can be used to close the connection with the remote peer. It can be cloned and moved around independently.

source

pub async fn greet_cashier(&self, request: &String) -> Result<String, Error>

Greet the cashier.

The cashier will reply with their own greeting.

source

pub async fn buy_tomatoes( &self, request: &BuyTomatoesRequest ) -> Result<SentRequestHandle<F>, Error>

Purchase tomatoes.

The response of the cashier depends on the update messages exchanged. If you run away after they have sent the price, or if you pay with a nun-fungable token, they will respond with BuyTomatoesResponse::ICalledSecurity.

If you pay with the correct amount, they will respond with BuyTomatoesResponse::ThankYouComeAgain.

source

pub async fn send_mutter(&self, body: &String) -> Result<(), Error>
where F: EncodeBody<String>,

Send a mutter stream message to the remote peer.

Trait Implementations§

source§

impl<F: Format> Clone for Client<F>

source§

fn clone(&self) -> Self

Returns a copy 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<F: Format> Debug for Client<F>

source§

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

Formats the value using the given formatter. Read more
source§

impl<F: Format> From<PeerHandle<<F as Format>::Body>> for Client<F>

source§

fn from(other: PeerHandle<F::Body>) -> Self

Converts to this type from the input type.
source§

impl<F: Format> From<PeerWriteHandle<<F as Format>::Body>> for Client<F>

source§

fn from(other: PeerWriteHandle<F::Body>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<F> !RefUnwindSafe for Client<F>

§

impl<F> Send for Client<F>

§

impl<F> Sync for Client<F>

§

impl<F> Unpin for Client<F>

§

impl<F> !UnwindSafe for Client<F>

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> ToOwned for T
where T: Clone,

§

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

§

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

§

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.