Skip to main content

Client

Struct Client 

Source
pub struct Client;
Expand description

The client role - typically an IDE or CLI that controls an agent.

Clients send prompts and receive responses from agents.

Implementations§

Source§

impl Client

Source

pub fn builder(self) -> Builder<Client, NullHandler, NullRun>

Create a connection builder for a client.

Source

pub fn v2(self) -> Builder<Client, NullHandler, NullRun>

Available on crate feature unstable_protocol_v2 only.

Create a client builder that requires an ACP protocol v2 agent.

If the agent negotiates v1 during initialization, the initialize request resolves with an error so callers can choose an explicit v1 fallback path.

Requires the unstable_protocol_v2 crate feature.

Source

pub fn protocol_connector(self) -> ClientProtocolConnector

Available on crate feature unstable_protocol_v2 only.

Create a connector that chooses between configured protocol implementations.

Add implementation factories with ClientProtocolConnector::with_v1 and ClientProtocolConnector::with_v2. The resulting connector starts the highest configured protocol implementation. If a v2 implementation successfully negotiates v1 and a v1 implementation is configured, the connector reuses the connection only when the v1 implementation’s initialize metadata and capabilities match what the agent already saw; otherwise it opens a fresh agent connection and restarts with v1.

Requires the unstable_protocol_v2 crate feature while protocol v2 stabilizes.

Source

pub async fn connect_with<R>( self, agent: impl ConnectTo<Client>, main_fn: impl AsyncFnOnce(ConnectionTo<Agent>) -> Result<R, Error>, ) -> Result<R, Error>

Connect to agent and run main_fn with the ConnectionTo. Returns the result of main_fn (or an error if something goes wrong).

Equivalent to self.builder().connect_with(agent, main_fn).

Trait Implementations§

Source§

impl Clone for Client

Source§

fn clone(&self) -> Client

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl ConnectTo<Client> for AgentProtocolRouter

Available on crate feature unstable_protocol_v2 only.
Source§

async fn connect_to(self, client: impl ConnectTo<Agent>) -> Result<(), Error>

Serve this component by forwarding to a client component. Read more
Source§

fn into_channel_and_future(self) -> (Channel, BoxFuture<'static, Result<()>>)
where Self: Sized,

Convert this component into a channel endpoint and server future. Read more
Source§

impl Copy for Client

Source§

impl Debug for Client

Source§

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

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

impl Default for Client

Source§

fn default() -> Client

Returns the “default value” for a type. Read more
Source§

impl Eq for Client

Source§

impl HasPeer<Client> for Client

Source§

fn remote_style(&self, _peer: Client) -> RemoteStyle

Returns the remote style for sending to this peer.
Source§

impl HasPeer<Client> for Conductor

Source§

fn remote_style(&self, _peer: Client) -> RemoteStyle

Returns the remote style for sending to this peer.
Source§

impl Hash for Client

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for Client

Source§

fn cmp(&self, other: &Client) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Client

Source§

fn eq(&self, other: &Client) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialOrd for Client

Source§

fn partial_cmp(&self, other: &Client) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Role for Client

Source§

type Counterpart = Agent

The role that this endpoint connects to. Read more
Source§

fn builder(self) -> Builder<Self>

Creates a new builder playing this role.
Source§

async fn default_handle_dispatch_from( &self, message: Dispatch, _connection: ConnectionTo<Client>, ) -> Result<Handled<Dispatch>, Error>

Method invoked when there is no defined message handler.
Source§

fn role_id(&self) -> RoleId

Returns a unique identifier for this role.
Source§

fn counterpart(&self) -> Self::Counterpart

Returns the counterpart role.
Source§

impl StructuralPartialEq for Client

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> 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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

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

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> IntoMaybeUndefined<T> for T

Source§

fn into_maybe_undefined(self) -> MaybeUndefined<T>

Converts this value into a three-state builder argument.
Source§

impl<T> IntoOption<T> for T

Source§

fn into_option(self) -> Option<T>

Converts this value into an optional builder argument.
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<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