1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
use crate::codec::JsonCodec; use crate::provider::{Description, EntryId, Origin, Path, RillEvent}; use meio_protocol::Protocol; use serde::{Deserialize, Serialize}; #[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)] pub struct ViewProtocol; impl Protocol for ViewProtocol { type ToServer = ViewRequest; type ToClient = ViewResponse; type Codec = JsonCodec; } impl Origin for ViewProtocol {} #[derive(Debug, Clone, Serialize, Deserialize)] pub enum ViewRequest { ControlStream { path: Path, active: bool }, } #[derive(Debug, Clone, Serialize, Deserialize)] pub enum ViewResponse { Declare(EntryId), Paths(Vec<Description>), Data(Path, RillEvent), }