pub struct CorrosionClient { /* private fields */ }Expand description
Convenience client that combines a CorrosionApiClient with a local
SQLite connection pool.
Implementations§
Source§impl CorrosionClient
impl CorrosionClient
pub fn new<P: AsRef<Path>>( api_addr: SocketAddr, db_path: P, ) -> Result<Self, Error>
pub fn with_sqlite_pool( api_addr: SocketAddr, pool: RusqlitePool, ) -> Result<Self, Error>
Sourcepub fn pool(&self) -> &RusqlitePool
pub fn pool(&self) -> &RusqlitePool
Borrow the SQLite connection pool used for direct reads.
Methods from Deref<Target = CorrosionApiClient>§
Sourcepub async fn query_typed<T: DeserializeOwned + Unpin>(
&self,
statement: &Statement,
timeout: Option<u64>,
) -> Result<QueryStream<T>, Error>
pub async fn query_typed<T: DeserializeOwned + Unpin>( &self, statement: &Statement, timeout: Option<u64>, ) -> Result<QueryStream<T>, Error>
Execute a single query against a Corrosion node, deserializing each row into T.
Optionally accepts a timeout for the request.
Calls the /v1/queries endpoint (https://superfly.github.io/corrosion/api/queries.html).
Sourcepub async fn query(
&self,
statement: &Statement,
timeout: Option<u64>,
) -> Result<QueryStream<Vec<SqliteValue>>, Error>
pub async fn query( &self, statement: &Statement, timeout: Option<u64>, ) -> Result<QueryStream<Vec<SqliteValue>>, Error>
Same as Self::query_typed, but returns each row as a
Vec<SqliteValue>.
Sourcepub async fn subscribe_typed<T: DeserializeOwned + Unpin>(
&self,
statement: &Statement,
skip_rows: bool,
from: Option<ChangeId>,
) -> Result<SubscriptionStream<T>, Error>
pub async fn subscribe_typed<T: DeserializeOwned + Unpin>( &self, statement: &Statement, skip_rows: bool, from: Option<ChangeId>, ) -> Result<SubscriptionStream<T>, Error>
Create a new subscription and stream query updates, deserializing rows into T.
skip_rows— whentrue, the initial rows are skipped and only changes are streamed.from— when set, resume the subscription past the givenChangeIdinstead of producing a fresh snapshot.
Calls the /v1/subscriptions endpoint (https://superfly.github.io/corrosion/api/subscriptions.html).
Sourcepub async fn subscribe(
&self,
statement: &Statement,
skip_rows: bool,
from: Option<ChangeId>,
) -> Result<SubscriptionStream<Vec<SqliteValue>>, Error>
pub async fn subscribe( &self, statement: &Statement, skip_rows: bool, from: Option<ChangeId>, ) -> Result<SubscriptionStream<Vec<SqliteValue>>, Error>
Same as Self::subscribe_typed, but returns each row as a
Vec<SqliteValue>.
Sourcepub async fn subscription_typed<T: DeserializeOwned + Unpin>(
&self,
id: Uuid,
skip_rows: bool,
from: Option<ChangeId>,
) -> Result<SubscriptionStream<T>, Error>
pub async fn subscription_typed<T: DeserializeOwned + Unpin>( &self, id: Uuid, skip_rows: bool, from: Option<ChangeId>, ) -> Result<SubscriptionStream<T>, Error>
Reconnect to an existing subscription identified by its Uuid.
Sourcepub async fn subscription(
&self,
id: Uuid,
skip_rows: bool,
from: Option<ChangeId>,
) -> Result<SubscriptionStream<Vec<SqliteValue>>, Error>
pub async fn subscription( &self, id: Uuid, skip_rows: bool, from: Option<ChangeId>, ) -> Result<SubscriptionStream<Vec<SqliteValue>>, Error>
Same as Self::subscription_typed, but returns each row as a
Vec<SqliteValue>.
Sourcepub async fn updates_typed<T: DeserializeOwned + Unpin>(
&self,
table: &str,
) -> Result<UpdatesStream<T>, Error>
pub async fn updates_typed<T: DeserializeOwned + Unpin>( &self, table: &str, ) -> Result<UpdatesStream<T>, Error>
Subscribe to row-level changes on a single table.
Calls the /v1/updates/{table} endpoint (https://superfly.github.io/corrosion/api/updates.html).
Sourcepub async fn updates(
&self,
table: &str,
) -> Result<UpdatesStream<Vec<SqliteValue>>, Error>
pub async fn updates( &self, table: &str, ) -> Result<UpdatesStream<Vec<SqliteValue>>, Error>
Same as Self::updates_typed, but returns each row as a
Vec<SqliteValue>.
Sourcepub async fn execute(
&self,
statements: &[Statement],
timeout: Option<u64>,
) -> Result<ExecResponse, Error>
pub async fn execute( &self, statements: &[Statement], timeout: Option<u64>, ) -> Result<ExecResponse, Error>
Execute one or more SQL statements in a single transaction.
Calls the /v1/transactions endpoint (https://superfly.github.io/corrosion/api/transactions.html).
Trait Implementations§
Source§impl Clone for CorrosionClient
impl Clone for CorrosionClient
Source§fn clone(&self) -> CorrosionClient
fn clone(&self) -> CorrosionClient
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for CorrosionClient
impl !RefUnwindSafe for CorrosionClient
impl Send for CorrosionClient
impl Sync for CorrosionClient
impl Unpin for CorrosionClient
impl UnsafeUnpin for CorrosionClient
impl !UnwindSafe for CorrosionClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more