[][src]Trait spartan_lib::core::payload::Dispatchable

pub trait Dispatchable: Identifiable {
    type Body: ?Sized;
    pub fn obtainable(&self) -> bool;
pub fn body(&self) -> &Self::Body;
pub fn gc(&self) -> bool; }

Interface for working with dispatchable messages

Associated Types

type Body: ?Sized[src]

Body type of dispatchable message

Loading content...

Required methods

pub fn obtainable(&self) -> bool[src]

Check if current message is obtainable

use spartan_lib::core::message::builder::MessageBuilder;
use spartan_lib::core::payload::Dispatchable;
use spartan_lib::chrono::{Utc, Duration};

let message = MessageBuilder::default().body("Hello, world").compose().unwrap();
let delayed_message = MessageBuilder::default()
    .body("Hello, world")
    .delay(600)
    .compose()
    .unwrap();

assert!(message.obtainable());
assert!(!delayed_message.obtainable());

pub fn body(&self) -> &Self::Body[src]

Get message body

use spartan_lib::core::message::builder::MessageBuilder;
use spartan_lib::core::payload::Dispatchable;

let message = MessageBuilder::default().body("Hello, world").compose().unwrap();

assert_eq!(message.body(), "Hello, world");

pub fn gc(&self) -> bool[src]

Check if current message is garbage

use spartan_lib::core::message::builder::MessageBuilder;
use spartan_lib::core::payload::{Dispatchable, Status};
use std::thread::sleep;
use std::time::Duration;

let mut message = MessageBuilder::default()
    .body("Hello, world")
    .timeout(0)
    .compose()
    .unwrap();

message.reserve();

sleep(Duration::from_secs(2));

assert!(message.gc());
Loading content...

Implementors

impl Dispatchable for Message[src]

type Body = str

Loading content...