Files
turso/packages/turso-sync-engine/src/protocol_io.rs

25 lines
672 B
Rust

use crate::Result;
pub trait DataPollResult {
fn data(&self) -> &[u8];
}
pub trait DataCompletion {
type HttpPollResult: DataPollResult;
fn status(&self) -> Result<Option<u16>>;
fn poll_data(&self) -> Result<Option<Self::HttpPollResult>>;
fn is_done(&self) -> Result<bool>;
}
pub trait ProtocolIO {
type DataCompletion: DataCompletion;
fn full_read(&self, path: &str) -> Result<Self::DataCompletion>;
fn full_write(&self, path: &str, content: Vec<u8>) -> Result<Self::DataCompletion>;
fn http(
&self,
method: http::Method,
path: String,
body: Option<Vec<u8>>,
) -> Result<Self::DataCompletion>;
}