Struct dynamodb_expression::Builder
source · pub struct Builder { /* private fields */ }
Expand description
For building an Expression
. Finish with .build()
.
See: Expression::builder
Implementations§
source§impl Builder
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 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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Creates a shared type from an unshared type.