AgentBuilder

Struct AgentBuilder 

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

An agent builder.

Implementations§

Source§

impl AgentBuilder

Source

pub fn new(agent_id: AgentId, api_version: &str) -> Self

Creates a new AgentBuilder.

§Arguments
  • agent_idAgentId to connect as.
  • api_version – agent’s API version string.
§Example
ket account_id = AccountId::new("service_name", "svc.example.org");
let agent_id = AgentId::new("instance01", account_id);
let builder = AgentBuilder::new(agent_id, "v1");
Source

pub fn connection_version(self, version: &str) -> Self

Sets a connection version.

This is different from agent’s API version. Connection version is the version of conventions that this library implements. Currently it’s v2 but if you know what you’re doing you may override it.

Source

pub fn connection_mode(self, mode: ConnectionMode) -> Self

Sets a connection mode for the agent to claim.

Connection mode defines a level a privileges an agent may use. See ConnectionMode for available modes and details.

The broker requires authorization to use the claimed mode and may refuse the connection if not authorized.

Source

pub fn start( self, config: &AgentConfig, ) -> Result<(Agent, UnboundedReceiver<AgentNotification>), Error>

Starts an MQTT client and in case of successful connection returns a tuple containing an Agent instance and a channel receiver which one can iterate over to get incoming messages.

§Example
let (agent, rx) = builder.start(&config)?;

// Subscribe to requests.
agent.subscribe(
    &Subscription::multicast_requests(Some("v1")),
    QoS::AtMostOnce,
    Some(&group),
)?;

// Message handling loop.
for notification in rx {
    match notification {
        svc_agent::mqtt::AgentNotification::Message(message_result, message_metadata) => {
            println!(
                "Incoming message: {:?} to topic {}",
                message_result,
                message_metadata.topic
            );
        }
        _ => ()
    }
}

Trait Implementations§

Source§

impl Debug for AgentBuilder

Source§

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

Formats the value using the given formatter. Read more

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.