pub struct Item {
pub attributes: HashMap<String, AttributeValue>,
}Expand description
dynamodb-formatted json looks something like this:
{
"profile_picture": { "B": "base64 string" },
"is_valid": { "BOOL": true },
"pictures": { "BS": ["base64 1", "base64 2"] },
"friends": { "L": [{ "S": "bob" }, { "S": "alice" }] },
"relationship": { "M": { "bob": {"S": "best friend"}, "alice": { "S": "second best friend" } } },
"age": { "N": "23" },
"favorite_birthdays": { "NS": ["17", "25"] },
"children": { "NULL": true },
"name": { "S": "arthur" },
"friends": { "SS": ["bob", "alice"] }
}This stuff exists mostly because WIT maintainers consider list
Examples:
Basic explicit lists:
use momento_functions_host::aws::ddb::Item;
let item: Item = vec![("some key", "some value")].into();
let item: Item = vec![("some key", 42)].into();Custom bound types:
use momento_functions_host::aws::ddb::{AttributeValue, Item};
struct MyStruct {
some_attribute: String,
}
// convert into dynamodb format
impl From<MyStruct> for Item {
fn from(value: MyStruct) -> Self {
[
("some_attribute", AttributeValue::from(value.some_attribute)),
].into()
}
}
// convert from dynamodb format
impl TryFrom<Item> for MyStruct {
type Error = String;
fn try_from(mut value: Item) -> Result<Self, Self::Error> {
Ok(Self {
some_attribute: value.attributes.remove("some_attribute").ok_or("missing some_attribute")?.try_into()?,
})
}
}
let item: Item = MyStruct { some_attribute: "some value".to_string() }.into();Fields§
§attributes: HashMap<String, AttributeValue>The item object
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Item
impl<'de> Deserialize<'de> for Item
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Item
impl RefUnwindSafe for Item
impl Send for Item
impl Sync for Item
impl Unpin for Item
impl UnwindSafe for Item
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