1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
use std::fmt::Debug;

#[typetag::serde(tag = "type", content = "value")]
pub trait Queue: Debug {
    fn enqueue(&self, data: serde_json::Value);
}

#[derive(Serialize, Debug, Deserialize)]
pub struct DemoQueue {
    pub name: String,
}

#[typetag::serde(name = "Abc")]
impl Queue for DemoQueue {
    fn enqueue(&self, data: serde_json::Value) {
        println!("Data Here: {}", data)
    }
}