pub struct Builder { /* private fields */ }
Expand description
For building an Expression
. Finish with .build()
.
See: Expression::builder
Implementations§
Source§impl Builder
Functions and methods for building an Expression
.
impl Builder
Functions and methods for building an Expression
.
Sourcepub fn with_condition<T>(self, condition: T) -> Self
pub fn with_condition<T>(self, condition: T) -> Self
Sets the condition for this Expression
, overwriting any previously set.
Sourcepub fn with_key_condition<T>(self, key_condition: T) -> Selfwhere
T: Into<KeyCondition>,
pub fn with_key_condition<T>(self, key_condition: T) -> Selfwhere
T: Into<KeyCondition>,
Sets the key condition for this Expression
, overwriting any previously set.
See also: Path::key
use dynamodb_expression::{Expression, Num, Path};
let key_condition = "id"
.parse::<Path>()?
.key()
.equal(Num::new(42))
.and("category".parse::<Path>()?.key().begins_with("hardware."));
let expression = Expression::builder().with_key_condition(key_condition).build();
Sourcepub fn with_update<T>(self, update: T) -> Self
pub fn with_update<T>(self, update: T) -> Self
Sets the update expression, overwriting any previously set.
Sourcepub fn with_filter<T>(self, filter: T) -> Self
pub fn with_filter<T>(self, filter: T) -> Self
Sets the filter for this Expression
, overwriting any previously set.
Sourcepub fn with_projection<I, T>(self, names: I) -> Self
pub fn with_projection<I, T>(self, names: I) -> Self
Sets the projection for this Expression
, overwriting any previously set.
Each of these examples produce the same projection expression.
let expected = Expression {
condition_expression: None,
key_condition_expression: None,
update_expression: None,
filter_expression: None,
projection_expression: Some(String::from("#0, #1")),
expression_attribute_names: Some(
[("#0", "id"), ("#1", "name")]
.into_iter()
.map(|(k, v)| (String::from(k), String::from(v)))
.collect(),
),
expression_attribute_values: None,
};
let expression = Expression::builder()
.with_projection(["id", "name"])
.build();
assert_eq!(expected, expression);
let expression = Expression::builder()
.with_projection([String::from("id"), String::from("name")])
.build();
assert_eq!(expected, expression);
let expression = Expression::builder()
.with_projection([Name::from("id"), Name::from("name")])
.build();
assert_eq!(expected, expression);
// Anything that's `IntoIterator` will work. A `Vec`, for example.
let expression = Expression::builder()
.with_projection(vec!["id", "name"])
.build();
assert_eq!(expected, expression);
// Or an `Iterator`.
let expression = Expression::builder()
.with_projection(["id", "name"].into_iter().map(Name::from))
.build();
assert_eq!(expected, expression);
Sourcepub fn build(self) -> Expression
pub fn build(self) -> Expression
Builds the Expression
.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Builder
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnwindSafe for Builder
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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 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>
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 moreCreates a shared type from an unshared type.