Struct DM

Source
pub struct DM<'a> {
    pub channel: &'a mut Channel,
}
Expand description

A struct that provides an interface for interacting with Urbit DMs

Fields§

§channel: &'a mut Channel

Implementations§

Source§

impl<'a> DM<'a>

Source

pub fn ship_to_dm_name(&self, ship: &str) -> String

Converts a ship @p to the dm_name string format used for DM channels

Source

pub fn send_dm_message( &mut self, dm_ship: &str, dm_name: &str, message: &Message, ) -> Result<String>

Send a message to an Urbit DM chat. Returns the index of the node that was added to Graph Store.

Source

pub fn export_dm_log( &mut self, dm_ship: &str, dm_name: &str, ) -> Result<Vec<String>>

Extracts DM chat log automatically into a list of formatted Strings

Source

pub fn export_dm_authored_messages( &mut self, dm_ship: &str, dm_name: &str, ) -> Result<Vec<AuthoredMessage>>

Extracts a DM chat’s messages as AuthoredMessages

Source

pub fn subscribe_to_dm( &mut self, dm_ship: &str, dm_name: &str, ) -> Result<Receiver<AuthoredMessage>>

Subscribe to and watch for messages. This method returns a Receiver with the AuthoredMessages that are posted after subscribing. Simply call receiver.try_recv() to read the next AuthoredMessage if one has been posted.

Technical Note: This method actually creates a new Channel with your Urbit Ship, and spawns a new unix thread locally that processes all messages on said channel. This is required due to borrowing mechanisms in Rust, however on the plus side this makes it potentially more performant by each subscription having it’s own unix thread.

Trait Implementations§

Source§

impl<'a> Messaging for DM<'a>

Source§

fn channel(&mut self) -> &mut Channel

Returns the reference to the Channel being used
Source§

fn send_message( &mut self, resource_ship: &str, resource_name: &str, message: &Message, ) -> Result<String>

Send a message to an Urbit chat/DM. Returns the index of the node that was added to Graph Store.
Source§

fn export_message_log( &mut self, resource_ship: &str, resource_name: &str, ) -> Result<Vec<String>>

Extracts messages automatically into a list of formatted Strings
Source§

fn export_authored_messages( &mut self, resource_ship: &str, resource_name: &str, ) -> Result<Vec<AuthoredMessage>>

Extracts messages as AuthoredMessages
Source§

fn export_message_nodes( &mut self, resource_ship: &str, resource_name: &str, ) -> Result<Vec<Node>>

Extracts a message nodes
Source§

fn subscribe_to_messages( &mut self, resource_ship: &str, resource_name: &str, ) -> Result<Receiver<AuthoredMessage>>

Subscribe to and watch for messages. This method returns a Receiver with the AuthoredMessages that are posted after subscribing. Simply call receiver.try_recv() to read the next AuthoredMessage if one has been posted. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for DM<'a>

§

impl<'a> !RefUnwindSafe for DM<'a>

§

impl<'a> Send for DM<'a>

§

impl<'a> Sync for DM<'a>

§

impl<'a> Unpin for DM<'a>

§

impl<'a> !UnwindSafe for DM<'a>

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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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<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
Source§

impl<T> ErasedDestructor for T
where T: 'static,