Enum storm_ext::ExtMsg

source ·
#[non_exhaustive]
pub enum ExtMsg {
    RegisterApp(StormApp),
    ListTopics(AddressedMsg<()>),
    Topics(AddressedMsg<BTreeSet<MesgId>>),
    ProposeTopic(AddressedMsg<Topic>),
    Post(AddressedMsg<Mesg>),
    Read(AddressedMsg<MesgId>),
    ContainerAnnouncement(AddressedMsg<ContainerInfo>),
    ContainerRetrieved(ContainerId),
    RetrieveContainer(AddressedMsg<ContainerFullId>),
    SendContainer(AddressedMsg<ContainerFullId>),
    Decline(AddressedMsg<MesgId>),
    Accept(AddressedMsg<MesgId>),
}

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

RegisterApp(StormApp)

An extension app connecting to the Storm node must first signal with this message its app id. After that storm node will be able to route messages coming from Bifrost network targeting this app.

§

ListTopics(AddressedMsg<()>)

List topics known to the local Storm node.

§

Topics(AddressedMsg<BTreeSet<MesgId>>)

Response to ListTopics request.

§

ProposeTopic(AddressedMsg<Topic>)

Sent or received propose to create a new Storm application topic which must be accepted or not.

§

Post(AddressedMsg<Mesg>)

A message sent from Storm node to the app extension on arrival of the new information from remote peer via Bifrost network and from the app extension to the Storm node on sent.

§

Read(AddressedMsg<MesgId>)

A message from app extension to external peer requesting certain message or a topic from a remote peer.

§

ContainerAnnouncement(AddressedMsg<ContainerInfo>)

A received container announcement

§

ContainerRetrieved(ContainerId)

Notification about complete container download

§

RetrieveContainer(AddressedMsg<ContainerFullId>)

Command from an extension to the main daemon to retrieve container from the remote peer

§

SendContainer(AddressedMsg<ContainerFullId>)

Command from an extension to the main daemon to send container to the remote peer

§

Decline(AddressedMsg<MesgId>)

Command to the storm node to decline the topic or a message with a specific id coming from certain peer.

§

Accept(AddressedMsg<MesgId>)

Command to the storm node to accept the topic or a message with a specific id coming from certain peer. This also requests the node to download all the unknown containers for the topic or the message.

Implementations§

source§

impl ExtMsg

source

pub fn remote_id(&self) -> NodeId

source

pub fn p2p_message(self, app: StormApp) -> Messages

source

pub fn to_payload(&self) -> Vec<u8>

Trait Implementations§

source§

impl Clone for ExtMsg

source§

fn clone(&self) -> ExtMsg

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 CreateUnmarshaller for ExtMsg

source§

impl Debug for ExtMsg

source§

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

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

impl Display for ExtMsg

source§

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

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

impl StrictDecode for ExtMsg

source§

fn strict_decode<D: Read>(d: D) -> Result<Self, Error>

Decode with the given std::io::Read instance; must either construct an instance or return implementation-specific error type.
source§

fn strict_deserialize(data: impl AsRef<[u8]>) -> Result<Self, Error>

Tries to deserialize byte array into the current type using StrictDecode::strict_decode. If there are some data remains in the buffer once deserialization is completed, fails with Error::DataNotEntirelyConsumed. Use io::Cursor over the buffer and StrictDecode::strict_decode to avoid such failures.
source§

fn strict_file_load(path: impl AsRef<Path>) -> Result<Self, Error>

Reads data from file at path and reconstructs object from it. Fails with Error::DataNotEntirelyConsumed if file contains remaining data after the object reconstruction.
source§

impl StrictEncode for ExtMsg

source§

fn strict_encode<E: Write>(&self, e: E) -> Result<usize, Error>

Encode with the given std::io::Write instance; must return result with either amount of bytes encoded – or implementation-specific error type.
source§

fn strict_serialize(&self) -> Result<Vec<u8, Global>, Error>

Serializes data as a byte array using StrictEncode::strict_encode function
source§

fn strict_file_save(&self, path: impl AsRef<Path>) -> Result<usize, Error>

Saves data to a file at a given path. If the file does not exists, attempts to create the file. If the file already exists, it gets truncated.
source§

impl TypedEnum for ExtMsg

source§

fn try_from_type(
type_id: TypeId,
data: &dyn Any
) -> Result<Self, UnknownTypeError>

source§

fn get_type(&self) -> TypeId

source§

fn get_payload(&self) -> Vec<u8>

source§

fn serialize(&self) -> Vec<u8>

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere
T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere
T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere
T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere
U: From<T>,

const: unstable · 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<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere
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> ToString for Twhere
T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for Twhere
U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere
U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,

§

fn vzip(self) -> V