Thalweg · API reference ← Main docs

DesiredTable

Struct DesiredTable 

Source
pub struct DesiredTable {
    pub table: TableRef,
    pub columns: Vec<ColumnSpec>,
    pub comment: Option<String>,
    pub properties: BTreeMap<String, String>,
}
Expand description

The target state the engine wants a table to be in, derived from an incoming Arrow RecordBatch schema plus contract/engine metadata.

Fields§

§table: TableRef

The table this describes.

§columns: Vec<ColumnSpec>

Columns in declaration order.

§comment: Option<String>

Table-level description, if any.

§properties: BTreeMap<String, String>

Table properties/tags (owner, contract URI + version, source topic, …), stored sorted so a plan is deterministic.

Implementations§

Source§

impl DesiredTable

Source

pub fn new(table: TableRef, columns: Vec<ColumnSpec>) -> Self

Start a desired-table spec with columns; comment and properties default empty and are added with the builder methods.

Source

pub fn with_comment(self, comment: impl Into<String>) -> Self

Builder: set the table-level comment.

Source

pub fn with_property( self, key: impl Into<String>, value: impl Into<String>, ) -> Self

Builder: set a table property/tag.

Source

pub fn column(&self, name: &str) -> Option<&ColumnSpec>

Look up a desired column by name.

Source

pub fn from_arrow_schema(table: TableRef, schema: &Schema) -> Self

Derive the desired columns directly from an incoming Arrow RecordBatch schema — the create/evolve driver described in the Zerobus sink plan §5.1.

Each Arrow field maps to the coarse sink type via [ProtoFieldType::from_arrow_type], carrying the field’s nullability. Comments and properties are attached afterwards with the builder methods (they come from the contract / engine, not the Arrow schema).

Trait Implementations§

Source§

impl Clone for DesiredTable

Source§

fn clone(&self) -> DesiredTable

Returns a duplicate 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 DesiredTable

Source§

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

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

impl PartialEq for DesiredTable

Source§

fn eq(&self, other: &DesiredTable) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for DesiredTable

Source§

impl StructuralPartialEq for DesiredTable

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> 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, 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,