teo_runtime/middleware/
block.rs

1use std::sync::Arc;
2use serde::Serialize;
3use crate::middleware::Use;
4
5#[derive(Debug, Clone)]
6pub struct Block {
7    inner: Arc<Inner>,
8}
9
10#[derive(Debug, Serialize)]
11struct Inner {
12    uses: Vec<Use>,
13}
14
15impl Block {
16
17    pub fn new(uses: Vec<Use>) -> Self {
18        Self {
19            inner: Arc::new(Inner {
20                uses,
21            }),
22        }
23    }
24
25    pub fn uses(&self) -> &Vec<Use> {
26        &self.inner.uses
27    }
28}
29
30impl Serialize for Block {
31    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
32        self.inner.serialize(serializer)
33    }
34}