Device

Struct Device 

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

A tosca device.

Implementations§

Source§

impl Device

Source

pub fn new( network_info: NetworkInformation, description: Description, route_configs: RouteConfigs, ) -> Self

Creates a Device from NetworkInformation, Description, and RouteConfigs.

This method can be useful when creating a device from data stored in a database.

Source

pub const fn network_info(&self) -> &NetworkInformation

Returns an immutable reference to NetworkInformation.

Source

pub const fn description(&self) -> &Description

Returns an immutable reference to Description.

Source

pub fn events_metadata(&self) -> Option<&EventsDescription>

Returns an immutable reference to EventsDescription.

If None, the device does not support events.

Source

pub fn requests_info(&self) -> Vec<RequestInfo<'_>>

Returns a RequestInfo vector containing the information for each request.

Source

pub fn requests_count(&self) -> usize

Returns the total number of requests associated with the device.

Source

pub fn request(&self, route: &str) -> Option<&Request>

Returns the Request associated with the given route.

If None, the given route does not exist.

Source

pub const fn has_events(&self) -> bool

Checks if a Device supports events.

Source

pub const fn is_event_receiver_running(&self) -> bool

Checks if the event receiver is currently running.

Always returns false if the Device does not support events.

Source

pub async fn start_event_receiver( &mut self, id: usize, buffer_size: usize, ) -> Result<Receiver<ToscaEvents>>

Starts the asynchronous event receiver if the Device supports events.

An event receiver task connects to the broker of a device and subscribes to its topic. When a device transmits an event to the broker, the task retrieves the event payload from the broker, parses the data, and sends the relevant content to the Receiver returned by this method.

The buffer_size parameter specifies how many messages the event receiver buffer can hold. When the buffer is full, subsequent send attempts will wait until a message is consumed from the channel.

When the returned Receiver is dropped, the event receiver task terminates automatically.

§Errors
  • The device does not support events
  • The event receiver task has already been started
  • An error occurred while attempting to subscribe to the broker topic

Trait Implementations§

Source§

impl Debug for Device

Source§

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

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

impl PartialEq for Device

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Device

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Device

§

impl RefUnwindSafe for Device

§

impl Send for Device

§

impl Sync for Device

§

impl Unpin for Device

§

impl UnwindSafe for Device

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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. 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