Skip to main content

TransactConditionCheckRequest

Struct TransactConditionCheckRequest 

Source
pub struct TransactConditionCheckRequest<TD: TableDefinition, T = ()> { /* private fields */ }
Expand description

Builder for a ConditionCheck operation inside a DynamoDB transaction.

A condition check does not mutate any item — it only asserts that a condition holds. If the condition fails, the entire transaction is cancelled. Use this to enforce invariants on items that are not otherwise being modified in the same transaction.

Constructed via DynamoDBItemTransactOp::transact_condition or DynamoDBItemTransactOp::transact_condition_by_id.

Call .build() to produce a TransactWriteItem that can be passed to the SDK’s transact_write_items() builder.

§Examples

Verify the user is an admin before toggling maintenance mode:

use dynamodb_facade::{DynamoDBItemOp, DynamoDBItemTransactOp, Condition, KeyId, Update};

let user = sample_user();

client
    .transact_write_items()
    .transact_items(
        user.transact_condition(
            User::exists() & Condition::eq("role", "admin"),
        )
        .build(),
    )
    .transact_items(
        PlatformConfig::transact_update_by_id(
            KeyId::NONE,
            Update::set("maintenance_mode", true),
        )
        .exists()
        .build(),
    )
    .send()
    .await?;

Implementations§

Source§

impl<TD: TableDefinition, T> TransactConditionCheckRequest<TD, T>

Source

pub fn new(key: Key<TD>, condition: Condition<'_>) -> Self

Creates a new TransactConditionCheckRequest from a raw Key and a Condition.

Prefer DynamoDBItemTransactOp::transact_condition or DynamoDBItemTransactOp::transact_condition_by_id for typed construction.

Source

pub fn into_inner(self) -> ConditionCheckBuilder

Consumes the builder and returns the underlying SDK ConditionCheckBuilder.

Use this escape hatch when you need to set options not exposed by this facade.

Source

pub fn build(self) -> TransactWriteItem

Finalizes the builder and returns a TransactWriteItem.

The returned value can be passed directly to the SDK’s transact_write_items().transact_items(...) call.

§Examples
use dynamodb_facade::{DynamoDBItemOp, DynamoDBItemTransactOp, Condition, KeyId, Update};

let user = sample_user();

// Verify the user is an admin before toggling maintenance mode
client
    .transact_write_items()
    .transact_items(
        user.transact_condition(
            User::exists() & Condition::eq("role", "admin"),
        )
        .build(),
    )
    .transact_items(
        PlatformConfig::transact_update_by_id(
            KeyId::NONE,
            Update::set("maintenance_mode", true),
        )
        .exists()
        .build(),
    )
    .send()
    .await?;

Auto Trait Implementations§

§

impl<TD, T> Freeze for TransactConditionCheckRequest<TD, T>

§

impl<TD, T> RefUnwindSafe for TransactConditionCheckRequest<TD, T>

§

impl<TD, T> Send for TransactConditionCheckRequest<TD, T>
where TD: Send, T: Send,

§

impl<TD, T> Sync for TransactConditionCheckRequest<TD, T>
where TD: Sync, T: Sync,

§

impl<TD, T> Unpin for TransactConditionCheckRequest<TD, T>
where TD: Unpin, T: Unpin,

§

impl<TD, T> UnsafeUnpin for TransactConditionCheckRequest<TD, T>

§

impl<TD, T> UnwindSafe for TransactConditionCheckRequest<TD, T>
where TD: UnwindSafe, T: UnwindSafe,

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> 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<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

Source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
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<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