Struct Table

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

A Table is used to perform writes, deletes, and other operations to data in base tables.

If you create multiple Table handles from a single ControllerHandle, they may share connections to the Soup workers. For this reason, Table is not Send or Sync. To get a handle that can be sent to a different thread (i.e., one with its own dedicated connections), call Table::into_exclusive.

Implementations§

Source§

impl Table

Source

pub fn table_name(&self) -> &str

Get the name of this base table.

Source

pub fn columns(&self) -> &[String]

Get the list of columns in this base table.

Note that this will not be updated if the underlying recipe changes and adds or removes columns!

Source

pub fn schema(&self) -> Option<&CreateTableStatement>

Get the schema that was used to create this base table.

Note that this will not be updated if the underlying recipe changes and adds or removes columns!

Source

pub async fn insert<V>(&mut self, u: V) -> Result<(), TableError>
where V: Into<Vec<DataType>>,

Insert a single row of data into this base table.

Source

pub async fn perform_all<I, V>(&mut self, i: I) -> Result<(), TableError>
where I: IntoIterator<Item = V>, V: Into<TableOperation>,

Perform multiple operation on this base table.

Source

pub async fn delete<I>(&mut self, key: I) -> Result<(), TableError>
where I: Into<Vec<DataType>>,

Delete the row with the given key from this base table.

Source

pub async fn update<V>( &mut self, key: Vec<DataType>, u: V, ) -> Result<(), TableError>
where V: IntoIterator<Item = (usize, Modification)>,

Update the row with the given key in this base table.

u is a set of column-modification pairs, where for each pair (i, m), the modification m will be applied to column i of the record with key key.

Source

pub async fn insert_or_update<V>( &mut self, insert: Vec<DataType>, update: V, ) -> Result<(), TableError>
where V: IntoIterator<Item = (usize, Modification)>,

Perform a insert-or-update on this base table.

If a row already exists for the key in insert, the existing row will instead be updated with the modifications in u (as documented in Table::update).

Trait Implementations§

Source§

impl Clone for Table

Source§

fn clone(&self) -> Table

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Table

Source§

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

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

impl Service<Vec<TableOperation>> for Table

Source§

type Error = TableError

Errors produced by the service.
Source§

type Response = <Buffer<ConcurrencyLimit<Balance<Discover<Client<MultiplexTransport<AsyncBincodeStream<TcpStream, Tagged<()>, Tagged<LocalOrNot<Input>>, AsyncDestination>, Tagger>, Error<MultiplexTransport<AsyncBincodeStream<TcpStream, Tagged<()>, Tagged<LocalOrNot<Input>>, AsyncDestination>, Tagger>, Tagged<LocalOrNot<Input>>>, Tagged<LocalOrNot<Input>>>>, Tagged<LocalOrNot<Input>>>>, Tagged<LocalOrNot<Input>>> as Service<Tagged<LocalOrNot<Input>>>>::Response

Responses given by the service.
Source§

type Future = Future<Result<Tagged<()>, TableError>>

The future response value.
Source§

fn poll_ready(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Self::Error>>

Returns Poll::Ready(Ok(())) when the service is able to process requests. Read more
Source§

fn call(&mut self, ops: Vec<TableOperation>) -> Self::Future

Process the request and return the response asynchronously. Read more

Auto Trait Implementations§

§

impl Freeze for Table

§

impl !RefUnwindSafe for Table

§

impl Send for Table

§

impl Sync for Table

§

impl Unpin for Table

§

impl !UnwindSafe for Table

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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
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