1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! `cjseq2` is a typed fork of [`cjseq`](https://github.com/cityjson/cjseq),
//! for reading, writing, and converting between CityJSON and CityJSONSeq.
//!
//! The library crate is still named `cjseq` (see `Cargo.toml`'s `[lib]`
//! section), so existing code that does `use cjseq::CityJSON` keeps working
//! unchanged. The package itself is published as `cjseq2` pending an
//! eventual merge upstream.
//!
//! Internally the crate is organised into one module per concern:
//! - `geometry` — `Geometry`, `GeometryType`, `GeometryTemplates`
//! - `semantics` — `Semantics`, `SemanticsSurface`, `SemanticsValues`
//! - `appearance` — `Appearance`, `MaterialReference`, `MaterialValues`, `TextureReference`, `TextureValues`
//! - `city_object` — `CityObject`
//! - `metadata` — `Metadata`, `PointOfContact`, `Address`, `ReferenceSystem`, `Transform`, `GeographicalExtent`
//! - `error` — `CjseqError`, `Result`
//! - `cityjson` — `CityJSON`, `CityJSONFeature`, `SortingStrategy`, and the sequencing/collect/filter logic
//!
//! Every type is re-exported at the crate root, so the module boundaries
//! above are an internal organisational detail, not part of the public
//! import paths. The one exception is the `Result<T>` alias, which stays at
//! [`error::Result`] so that a glob `use cjseq::*` cannot shadow
//! `std::result::Result`.
pub use *;
pub use *;
pub use *;
//-- Deliberately *not* `pub use error::*`. That would put a `Result<T>` alias
//-- at the crate root, and `use cjseq::*` would then shadow
//-- `std::result::Result` in the importing module -- a surprise this crate has
//-- no business inflicting on its callers. `CjseqError` is re-exported by
//-- name; the alias stays reachable as `cjseq::error::Result`.
pub use CjseqError;
pub use *;
pub use *;
pub use *;
// WASM bindings module
// Re-export WASM functions for convenience
pub use *;