Test setting object boxes with Ext

This commit is contained in:
asonix 2020-04-02 09:41:06 -05:00
parent 2f27ef3f70
commit b8e4e175cf

View file

@ -1,6 +1,7 @@
use activitystreams::{ use activitystreams::{
collection::{properties::CollectionProperties, OrderedCollection}, collection::{properties::CollectionProperties, OrderedCollection},
object::{ObjectBox, Page}, ext::Ext,
object::{properties::ApObjectProperties, ObjectBox, Page},
}; };
use anyhow::Error; use anyhow::Error;
@ -40,7 +41,7 @@ fn main() -> Result<(), Error> {
"published": "2020-03-13T00:14:41.188634+00:00" "published": "2020-03-13T00:14:41.188634+00:00"
}"#; }"#;
let page: Page = serde_json::from_str(page_json)?; let page: Ext<Page, ApObjectProperties> = serde_json::from_str(page_json)?;
println!("{:#?}", page); println!("{:#?}", page);
let obox = ObjectBox::from_concrete(page)?; let obox = ObjectBox::from_concrete(page)?;
println!("{:#?}", obox); println!("{:#?}", obox);
@ -48,16 +49,19 @@ fn main() -> Result<(), Error> {
println!("{}", obox_string); println!("{}", obox_string);
let obox: ObjectBox = serde_json::from_str(&obox_string)?; let obox: ObjectBox = serde_json::from_str(&obox_string)?;
println!("{:#?}", obox); println!("{:#?}", obox);
let collection: OrderedCollection = serde_json::from_str(collection_json)?; let mut collection: OrderedCollection = serde_json::from_str(collection_json)?;
println!("{:#?}", collection); println!("{:#?}", collection);
let cprops: &CollectionProperties = collection.as_ref(); let cprops: &CollectionProperties = collection.as_ref();
let v: Vec<Page> = cprops let v: Vec<Ext<Page, ApObjectProperties>> = cprops
.get_many_items_object_boxs() .get_many_items_object_boxs()
.unwrap() .unwrap()
.map(|object_box| object_box.clone().to_concrete::<Page>()) .map(|object_box| object_box.clone().to_concrete())
.collect::<Result<Vec<_>, std::io::Error>>()?; .collect::<Result<Vec<_>, std::io::Error>>()?;
let cprops: &mut CollectionProperties = collection.as_mut();
cprops.set_many_items_object_boxs(v.clone())?;
println!("{:#?}", v); println!("{:#?}", v);
Ok(()) Ok(())