cloud.rs 792 B

1234567891011121314151617181920212223242526
  1. use anyhow::Error;
  2. pub use collab_document::blocks::DocumentData;
  3. use lib_infra::future::FutureResult;
  4. /// A trait for document cloud service.
  5. /// Each kind of server should implement this trait. Check out the [AppFlowyServerProvider] of
  6. /// [flowy-server] crate for more information.
  7. pub trait DocumentCloudService: Send + Sync + 'static {
  8. fn get_document_updates(&self, document_id: &str) -> FutureResult<Vec<Vec<u8>>, Error>;
  9. fn get_document_snapshots(
  10. &self,
  11. document_id: &str,
  12. limit: usize,
  13. ) -> FutureResult<Vec<DocumentSnapshot>, Error>;
  14. fn get_document_data(&self, document_id: &str) -> FutureResult<Option<DocumentData>, Error>;
  15. }
  16. pub struct DocumentSnapshot {
  17. pub snapshot_id: i64,
  18. pub document_id: String,
  19. pub data: Vec<u8>,
  20. pub created_at: i64,
  21. }