From a8b4eab4450da8f5aa8852c897dbbd4ed6384bb7 Mon Sep 17 00:00:00 2001 From: alemi Date: Fri, 9 Aug 2024 00:40:33 +0200 Subject: [PATCH] feat: api struct for event Co-authored-by: zaaarf --- src/api/event.rs | 20 ++++++++++++++++++++ src/api/mod.rs | 4 ++++ 2 files changed, 24 insertions(+) create mode 100644 src/api/event.rs diff --git a/src/api/event.rs b/src/api/event.rs new file mode 100644 index 0000000..5102a7b --- /dev/null +++ b/src/api/event.rs @@ -0,0 +1,20 @@ +use codemp_proto::workspace::workspace_event::Event as WorkspaceEventInner; + +pub enum Event { + FileTreeUpdated, + UserJoin(String), + UserLeave(String), +} + +impl From<&WorkspaceEventInner> for Event { + fn from(event: &WorkspaceEventInner) -> Self { + match event { + WorkspaceEventInner::Join(e) => Self::UserJoin(e.user.id.clone()), + WorkspaceEventInner::Leave(e) => Self::UserLeave(e.user.id.clone()), + WorkspaceEventInner::Create(_) + | WorkspaceEventInner::Rename(_) + | WorkspaceEventInner::Delete(_) + => Self::FileTreeUpdated, + } + } +} diff --git a/src/api/mod.rs b/src/api/mod.rs index 813b298..b696632 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -13,6 +13,9 @@ pub mod change; /// representation for an user's cursor pub mod cursor; +/// workspace events +pub mod event; + /// data structure for service users pub mod user; @@ -20,4 +23,5 @@ pub use controller::Controller; pub use change::TextChange; pub use change::Op; pub use cursor::Cursor; +pub use event::Event; pub use user::User;