Skip to main content

StructPatchBuilder

Struct StructPatchBuilder 

Source
pub struct StructPatchBuilder<Item> { /* private fields */ }
Expand description

Builds a sparse struct patch from a sequence of requested patch operations.

The builder records user intent, checks for conflicting destructive operations, and lowers nested field paths into recursive struct patches. The same builder surface drives both expression patching (ExpressionStructPatchBuilder) and schema patching (SchemaStructPatchBuilder); only the terminal build step differs.

Implementations§

Source§

impl<Item> StructPatchBuilder<Item>

Source

pub fn new() -> Self

Creates a new top-level patch builder.

Source

pub fn new_nested(path: impl CollectInto<ColumnName>) -> Self

Creates a new builder that operates on fields of a nested struct identified by path.

Source

pub fn drop(self, field_name: impl Into<String>) -> Self

Records a field drop.

Source

pub fn drop_at( self, struct_path: impl CollectInto<ColumnName>, field_name: impl Into<String>, ) -> Self

Records a field drop in a nested struct.

Source

pub fn drop_if_exists(self, field_name: impl Into<String>) -> Self

Records an optional field drop.

Source

pub fn drop_if_exists_at( self, struct_path: impl CollectInto<ColumnName>, field_name: impl Into<String>, ) -> Self

Records an optional field drop in a nested struct.

Source

pub fn replace( self, field_name: impl Into<String>, item: impl Into<Item>, ) -> Self

Records a field replacement.

Source

pub fn replace_at( self, struct_path: impl CollectInto<ColumnName>, field_name: impl Into<String>, item: impl Into<Item>, ) -> Self

Records a field replacement in a nested struct.

Source

pub fn prepend(self, item: impl Into<Item>) -> Self

Records an item to emit before processing the first input field.

Source

pub fn prepend_at( self, struct_path: impl CollectInto<ColumnName>, item: impl Into<Item>, ) -> Self

Records an item to emit before processing the first input field of a nested struct.

Source

pub fn insert_after( self, field_name: impl Into<String>, item: impl Into<Item>, ) -> Self

Records an item to insert after the named field.

Source

pub fn insert_after_at( self, struct_path: impl CollectInto<ColumnName>, field_name: impl Into<String>, item: impl Into<Item>, ) -> Self

Records an item to insert after the named field in a nested struct.

Source

pub fn append(self, item: impl Into<Item>) -> Self

Records an item to append after all input fields and field-specific insertions.

Source

pub fn append_at( self, struct_path: impl CollectInto<ColumnName>, item: impl Into<Item>, ) -> Self

Records an item to append after all fields of a nested struct.

Source§

impl StructPatchBuilder<ExpressionRef>

Source

pub fn build(self) -> DeltaResult<ExpressionStructPatch>

Builds the final expression patch.

§Errors

Returns an error when builder calls request multiple drop/replace operations for the same field, or when a destructive operation on one field overlapped with an operation on a nested child field.

Source§

impl StructPatchBuilder<StructField>

Source

pub fn build(self, input_schema: &StructType) -> DeltaResult<StructType>

Builds the output struct schema for this patch over input_schema.

If this builder targets a nested path (via new_nested), the returned schema is the patched schema for the nested struct at that path, not the full top-level input schema.

§Errors

Returns an error if a builder call produced a conflicting operation, the input path cannot be resolved to a struct, a required field patch references a missing input field, a nested field patch targets a non-struct field, or the resulting output schema is invalid.

Trait Implementations§

Source§

impl<Item: Debug> Debug for StructPatchBuilder<Item>

Source§

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

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

impl TryFrom<StructPatchBuilder<Arc<Expression>>> for ExpressionStructPatch

Source§

type Error = Error

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

fn try_from(builder: StructPatchBuilder<ExpressionRef>) -> DeltaResult<Self>

Performs the conversion.

Auto Trait Implementations§

§

impl<Item> !RefUnwindSafe for StructPatchBuilder<Item>

§

impl<Item> !UnwindSafe for StructPatchBuilder<Item>

§

impl<Item> Freeze for StructPatchBuilder<Item>

§

impl<Item> Send for StructPatchBuilder<Item>
where Item: Send,

§

impl<Item> Sync for StructPatchBuilder<Item>
where Item: Sync,

§

impl<Item> Unpin for StructPatchBuilder<Item>
where Item: Unpin,

§

impl<Item> UnsafeUnpin for StructPatchBuilder<Item>

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> AsAny for T
where T: Any + Send + Sync,

Source§

fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)

Obtains a dyn Any reference to the object: Read more
Source§

fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Obtains an Arc<dyn Any> reference to the object: Read more
Source§

fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts the object to Box<dyn Any>: Read more
Source§

fn type_name(&self) -> &'static str

Convenient wrapper for std::any::type_name, since Any does not provide it and Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).
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> FoldWithOption for T

Source§

fn fold_with<U>(self, opt: Option<U>, f: impl FnOnce(Self, U) -> Self) -> Self

Available on crate feature internal-api only.
Applies an optional fold operation f to self if opt is Some; otherwise returns self unchanged. Read more
Source§

fn try_fold_with<U, E>( self, opt: Option<U>, f: impl FnOnce(Self, U) -> Result<Self, E>, ) -> Result<Self, E>

Available on crate feature internal-api only.
Fallible fold_with: applies Result-returning f to self if opt is Some, otherwise returns self unchanged (wrapped in Ok).
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<KernelType, ArrowType> TryIntoArrow<ArrowType> for KernelType
where ArrowType: TryFromKernel<KernelType>,

Source§

fn try_into_arrow(self) -> Result<ArrowType, ArrowError>

Available on crate feature arrow-conversion and (crate features arrow-conversion or declarative-plans or default-engine-base) only.
Source§

impl<KernelType, ArrowType> TryIntoKernel<KernelType> for ArrowType
where KernelType: TryFromArrow<ArrowType>,

Source§

fn try_into_kernel(self) -> Result<KernelType, ArrowError>

Available on crate feature arrow-conversion and (crate features arrow-conversion or declarative-plans or default-engine-base) only.
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