Skip to main content

Session

Struct Session 

Source
pub struct Session { /* private fields */ }
Expand description

A session that records database changes for later extraction as a changeset or patchset.

In a real database engine this would hook into the DML pipeline. For now it provides a programmatic API for recording changes and generating the binary changeset/patchset encoding.

Implementations§

Source§

impl Session

Source

pub fn new() -> Self

Create a new, empty session.

Source

pub fn attach_table( &mut self, name: &str, column_count: usize, pk_flags: Vec<bool>, )

Attach a table for change tracking.

pk_flags indicates which columns are part of the primary key.

SQLite session changesets only track tables with an explicit primary key. Attached tables with no key columns are ignored when generating changesets or patchsets.

Source

pub fn record_insert(&mut self, table: &str, new_values: Vec<ChangesetValue>)

Record an INSERT operation.

Source

pub fn record_delete(&mut self, table: &str, old_values: Vec<ChangesetValue>)

Record a DELETE operation.

Source

pub fn record_update( &mut self, table: &str, old_values: Vec<ChangesetValue>, new_values: Vec<ChangesetValue>, )

Record an UPDATE operation.

old_values and new_values must have the same length. Use ChangesetValue::Undefined for columns that did not change.

Source

pub fn changeset(&self) -> Changeset

Generate a Changeset from all recorded changes.

Source

pub fn patchset(&self) -> Vec<u8>

Generate a patchset (compact binary format).

Trait Implementations§

Source§

impl Debug for Session

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Session

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more