async_nats::service

Struct Service

source
pub struct Service { /* private fields */ }
Available on crate feature service only.
Expand description

Service instance.

§Examples

use async_nats::service::ServiceExt;
use futures::StreamExt;
let client = async_nats::connect("demo.nats.io").await?;
let mut service = client.service_builder().start("generator", "1.0.0").await?;
let mut endpoint = service.endpoint("get").await?;

if let Some(request) = endpoint.next().await {
    request.respond(Ok("hello".into())).await?;
}

Implementations§

source§

impl Service

source

pub async fn stop(self) -> Result<(), Error>

Stops this instance of the Service. If there are more instances of Services with the same name, the Service will be scaled down by one instance. If it was the only running instance, it will effectively remove the service entirely.

source

pub async fn reset(&mut self)

Resets Stats of the Service instance.

source

pub async fn stats(&self) -> HashMap<String, Stats>

Returns Stats for this service instance.

source

pub async fn info(&self) -> Info

Returns Info for this service instance.

source

pub fn group<S: ToString>(&self, prefix: S) -> Group

Creates a group for endpoints under common prefix.

§Examples
use async_nats::service::ServiceExt;
let client = async_nats::connect("demo.nats.io").await?;
let mut service = client.service_builder().start("service", "1.0.0").await?;

let v1 = service.group("v1");
let products = v1.endpoint("products").await?;
source

pub fn group_with_queue_group<S: ToString, Z: ToString>( &self, prefix: S, queue_group: Z, ) -> Group

Creates a group for endpoints under common prefix with custom queue group.

§Examples
use async_nats::service::ServiceExt;
let client = async_nats::connect("demo.nats.io").await?;
let mut service = client.service_builder().start("service", "1.0.0").await?;

let v1 = service.group("v1");
let products = v1.endpoint("products").await?;
source

pub fn endpoint_builder(&self) -> EndpointBuilder

Builder for customized Endpoint creation.

§Examples
use async_nats::service::ServiceExt;
let client = async_nats::connect("demo.nats.io").await?;
let mut service = client.service_builder().start("service", "1.0.0").await?;

let products = service
    .endpoint_builder()
    .name("api")
    .add("products")
    .await?;
source

pub async fn endpoint<S: ToString>(&self, subject: S) -> Result<Endpoint, Error>

Adds a new endpoint to the Service.

§Examples
use async_nats::service::ServiceExt;
let client = async_nats::connect("demo.nats.io").await?;
let mut service = client.service_builder().start("service", "1.0.0").await?;

let products = service.endpoint("products").await?;

Trait Implementations§

source§

impl Debug for Service

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> 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> 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<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

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