use anyhow::Error; pub use collab_document::blocks::DocumentData; use lib_infra::future::FutureResult; /// A trait for document cloud service. /// Each kind of server should implement this trait. Check out the [AppFlowyServerProvider] of /// [flowy-server] crate for more information. pub trait DocumentCloudService: Send + Sync + 'static { fn get_document_updates( &self, document_id: &str, workspace_id: &str, ) -> FutureResult>, Error>; fn get_document_snapshots( &self, document_id: &str, limit: usize, workspace_id: &str, ) -> FutureResult, Error>; fn get_document_data( &self, document_id: &str, workspace_id: &str, ) -> FutureResult, Error>; } pub struct DocumentSnapshot { pub snapshot_id: i64, pub document_id: String, pub data: Vec, pub created_at: i64, }