use linked_data::{RdfUnordered, SerializeLinkedData, ser::to_rdf_quads};
use rdf_syntax::{IriBuf, iri};
#[derive(SerializeLinkedData)]
#[ld(prefix("ex" = "http://example.org/"))]
struct Foo {
#[ld(flatten)]
id: IriBuf,
#[ld(graph)]
values: RdfUnordered<Vec<Bar>>,
}
#[derive(SerializeLinkedData)]
#[ld(prefix("ex" = "http://example.org/"))]
#[ld(type = "ex:Bar")]
struct Bar {
#[ld(flatten)]
id: IriBuf,
#[ld(prop = "ex:value")]
value: u32,
}
fn main() {
let value = Foo {
id: iri!("http://example.org/graph").to_owned(),
values: RdfUnordered(vec![Bar {
id: iri!("http://example.org/graph#item").to_owned(),
value: 12,
}]),
};
let quads = to_rdf_quads(&value).expect("RDF serialization failed");
for quad in &quads {
println!("{quad} .")
}
}