Skip to main content

json_ld/algorithms/flattening/
mod.rs

1//! Flattening algorithm and related types.
2use rdf_syntax::Generator;
3
4use crate::{
5	JsonLdBacktraceBuilder, JsonLdExpandedDocument, JsonLdFlattenedDocument,
6	flattened::JsonLdUnorderedFlattenedDocument,
7};
8
9mod node_map;
10
11pub use node_map::*;
12
13impl JsonLdExpandedDocument {
14	pub fn flatten(
15		&self,
16		generator: impl Generator,
17		ordered: bool,
18		location: JsonLdBacktraceBuilder<'_>,
19	) -> Result<JsonLdFlattenedDocument, NodeMapExtendError> {
20		Ok(self
21			.generate_node_map_with(generator, location)?
22			.flatten(ordered))
23	}
24
25	pub fn flatten_unordered(
26		&self,
27		generator: impl Generator,
28		location: JsonLdBacktraceBuilder<'_>,
29	) -> Result<JsonLdUnorderedFlattenedDocument, NodeMapExtendError> {
30		Ok(self
31			.generate_node_map_with(generator, location)?
32			.flatten_unordered())
33	}
34}