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>
impl<TD: TableDefinition, T> TransactConditionCheckRequest<TD, T>
Sourcepub fn new(key: Key<TD>, condition: Condition<'_>) -> Self
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.
Sourcepub fn into_inner(self) -> ConditionCheckBuilder
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.
Sourcepub fn build(self) -> TransactWriteItem
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>where
TD: RefUnwindSafe,
T: RefUnwindSafe,
impl<TD, T> Send for TransactConditionCheckRequest<TD, T>
impl<TD, T> Sync for TransactConditionCheckRequest<TD, T>
impl<TD, T> Unpin for TransactConditionCheckRequest<TD, T>
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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