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
//! Intermediate representation for OpenAPI code generation.
//!
//! The IR has three layers:
//!
//! * **Types** define the data types that all other layers share.
//! Each type shape is parameterized over _how it references other types_:
//! spec types hold unresolved JSON Pointer references, while graph types
//! hold resolved node indices.
//!
//! * A [`Spec`] is a tree of those data types, lowered from
//! a parsed [`Document`], with references still unresolved.
//!
//! * The **graph** resolves those references into a dependency graph.
//! [`RawGraph`] is the mutable form used for in-place transformations;
//! [`CookedGraph`] is the frozen form used for traversal and codegen.
//!
//! The [`views`] module wraps cooked graph nodes in read-only view types
//! that expose traversal and metadata. See that module and the
//! [crate root](crate) for usage.
//!
//! [`Document`]: crate::parse::Document
pub use ;
pub use Spec;
pub use *;
pub use ;