pub trait Messaging {
// Required method
fn channel(&mut self) -> &mut Channel;
// Provided methods
fn send_message(
&mut self,
resource_ship: &str,
resource_name: &str,
message: &Message,
) -> Result<String> { ... }
fn export_message_log(
&mut self,
resource_ship: &str,
resource_name: &str,
) -> Result<Vec<String>> { ... }
fn export_authored_messages(
&mut self,
resource_ship: &str,
resource_name: &str,
) -> Result<Vec<AuthoredMessage>> { ... }
fn export_message_nodes(
&mut self,
resource_ship: &str,
resource_name: &str,
) -> Result<Vec<Node>> { ... }
fn subscribe_to_messages(
&mut self,
resource_ship: &str,
resource_name: &str,
) -> Result<Receiver<AuthoredMessage>> { ... }
}
Expand description
A trait which wraps both chats & DMs.
Required Methods§
Provided Methods§
Sourcefn send_message(
&mut self,
resource_ship: &str,
resource_name: &str,
message: &Message,
) -> Result<String>
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.
Sourcefn export_message_log(
&mut self,
resource_ship: &str,
resource_name: &str,
) -> Result<Vec<String>>
fn export_message_log( &mut self, resource_ship: &str, resource_name: &str, ) -> Result<Vec<String>>
Extracts messages automatically into a list of formatted String
s
Extracts messages as AuthoredMessage
s
Sourcefn export_message_nodes(
&mut self,
resource_ship: &str,
resource_name: &str,
) -> Result<Vec<Node>>
fn export_message_nodes( &mut self, resource_ship: &str, resource_name: &str, ) -> Result<Vec<Node>>
Extracts a message nodes
Sourcefn subscribe_to_messages(
&mut self,
resource_ship: &str,
resource_name: &str,
) -> Result<Receiver<AuthoredMessage>>
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
AuthoredMessage
s 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.