pub struct TransactDeleteRequest<TD: TableDefinition, T = (), C: ConditionState = NoCondition> { /* private fields */ }Expand description
Builder for a Delete operation inside a DynamoDB transaction.
Constructed via DynamoDBItemTransactOp::transact_delete or
DynamoDBItemTransactOp::transact_delete_by_id. Optionally add a
condition that must hold for the delete to succeed, via
.condition(), or
.exists(). DynamoDB accepts a
single condition expression per operation, so this can only be called once.
Call .build() to produce a
TransactWriteItem that can be passed to the SDK’s
transact_write_items() builder.
§Examples
Atomically remove an enrollment and decrement the user’s enrollment count:
use dynamodb_facade::{DynamoDBItemTransactOp, Condition, KeyId, Update};
client
.transact_write_items()
.transact_items(
Enrollment::transact_delete_by_id(KeyId::pk("user-1").sk("course-42"))
.exists()
.build(),
)
.transact_items(
User::transact_update_by_id(
KeyId::pk("user-1"),
Update::decrement("enrollment_count", 1),
)
.condition(Condition::exists("enrollment_count"))
.build(),
)
.send()
.await?;Implementations§
Source§impl<TD: TableDefinition, T, C: ConditionState> TransactDeleteRequest<TD, T, C>
impl<TD: TableDefinition, T, C: ConditionState> TransactDeleteRequest<TD, T, C>
Sourcepub fn new(key: Key<TD>) -> Self
pub fn new(key: Key<TD>) -> Self
Creates a new TransactDeleteRequest from a raw Key.
Prefer DynamoDBItemTransactOp::transact_delete or
DynamoDBItemTransactOp::transact_delete_by_id for typed construction.
Sourcepub fn into_inner(self) -> DeleteBuilder
pub fn into_inner(self) -> DeleteBuilder
Consumes the builder and returns the underlying SDK DeleteBuilder.
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::{DynamoDBItemTransactOp, Condition, KeyId, Update};
// Atomically remove an enrollment and decrement the user's counter
client
.transact_write_items()
.transact_items(
Enrollment::transact_delete_by_id(KeyId::pk("user-1").sk("course-42"))
.exists()
.build(),
)
.transact_items(
User::transact_update_by_id(
KeyId::pk("user-1"),
Update::decrement("enrollment_count", 1),
)
.condition(Condition::exists("enrollment_count"))
.build(),
)
.send()
.await?;Source§impl<TD: TableDefinition, T> TransactDeleteRequest<TD, T, NoCondition>
impl<TD: TableDefinition, T> TransactDeleteRequest<TD, T, NoCondition>
Sourcepub fn condition(
self,
condition: Condition<'_>,
) -> TransactDeleteRequest<TD, T, AlreadyHasCondition>
pub fn condition( self, condition: Condition<'_>, ) -> TransactDeleteRequest<TD, T, AlreadyHasCondition>
Adds a condition expression that must be satisfied for the delete to succeed.
DynamoDB accepts a single condition expression per operation, so this method can only be called once. If the condition fails, the entire transaction is cancelled.
§Examples
use dynamodb_facade::{DynamoDBItemOp, DynamoDBItemTransactOp, Condition};
let transact_item = sample_enrollment()
.transact_delete()
.condition(Enrollment::exists() & Condition::not_exists("completed_at"))
.build();Source§impl<TD: TableDefinition, T: DynamoDBItem<TD>> TransactDeleteRequest<TD, T, NoCondition>
impl<TD: TableDefinition, T: DynamoDBItem<TD>> TransactDeleteRequest<TD, T, NoCondition>
Sourcepub fn exists(self) -> TransactDeleteRequest<TD, T, AlreadyHasCondition>
pub fn exists(self) -> TransactDeleteRequest<TD, T, AlreadyHasCondition>
Adds an attribute_exists(<PK>) condition.
§Examples
use dynamodb_facade::DynamoDBItemTransactOp;
let transact_item = sample_enrollment().transact_delete().exists().build();Auto Trait Implementations§
impl<TD, T, C> Freeze for TransactDeleteRequest<TD, T, C>
impl<TD, T, C> RefUnwindSafe for TransactDeleteRequest<TD, T, C>
impl<TD, T, C> Send for TransactDeleteRequest<TD, T, C>
impl<TD, T, C> Sync for TransactDeleteRequest<TD, T, C>
impl<TD, T, C> Unpin for TransactDeleteRequest<TD, T, C>
impl<TD, T, C> UnsafeUnpin for TransactDeleteRequest<TD, T, C>
impl<TD, T, C> UnwindSafe for TransactDeleteRequest<TD, T, C>
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