1mod model;
12mod numeric;
13pub(crate) mod parser;
14
15pub use model::{
16 LandXmlCgPoint, LandXmlGeometryKind, LandXmlMonument, LandXmlParcel, LandXmlParcelProbe,
17 LandXmlParcelState, LandXmlPlanDocument, LandXmlPlanFeature, LandXmlPlanGeometry,
18 LandXmlPlanPoint, LandXmlPlanPointLocation, LandXmlPlanSourceBatch,
19};
20pub use numeric::references::LandXmlPlanResolver;
21pub use parser::{parse_landxml_plan, parse_landxml_plan_with_cancel, LandXmlPlanLimits};
22
23#[derive(Clone, Debug, serde::Deserialize, PartialEq, serde::Serialize)]
27pub struct LandXmlDocument {
28 #[serde(flatten)]
29 pub terrain: crate::LandXmlTinDocument,
30 pub plan: LandXmlPlanDocument,
31}
32
33pub fn parse_landxml_document(
35 input: &[u8],
36) -> std::result::Result<LandXmlDocument, crate::LandXmlError> {
37 Ok(LandXmlDocument {
38 terrain: crate::parser::parse_landxml_document(input)?,
39 plan: parse_landxml_plan(input)?,
40 })
41}