Skip to main content

morphir_projection/
lib.rs

1//! Shared normalization from Morphir IR into a body-free projection model.
2//!
3//! Backend extensions decode IR v3 or v4 with [`normalize()`] and then project
4//! the resulting [`ProjectionPackage`] into their own target model. The model
5//! keeps public declarations, documentation, source FQNames, dependencies, and
6//! v4 entry-point metadata, and drops every value body.
7
8mod model;
9mod naming;
10mod normalize;
11
12pub use model::{
13    Constructor, DistributionKind, EntryPointKind, EntryPointMetadata, IncompletenessKind,
14    NamedType, ProjectionDependency, ProjectionModule, ProjectionPackage, TypeDeclaration,
15    TypeExpr, ValueKind, ValueSpecification,
16};
17pub use naming::{lower_camel, upper_camel};
18pub use normalize::{NormalizeError, normalize};
19
20#[cfg(any(test, feature = "testing"))]
21pub mod testing;