1//! The Rune compiler.
2//!
3//! The main entry to compiling rune source is [prepare][crate::prepare] which
4//! uses this compiler. In here you'll just find compiler-specific types.
56mod assembly;
7pub(crate) use self::assembly::{Assembly, AssemblyInst};
89pub(crate) mod attrs;
1011pub(crate) mod error;
12pub use self::error::{Error, ImportStep, MetaError};
13pub(crate) use self::error::{ErrorKind, IrErrorKind};
1415mod compile_visitor;
16pub use self::compile_visitor::CompileVisitor;
17#[cfg(feature = "std")]
18pub(crate) use self::compile_visitor::NoopCompileVisitor;
1920pub(crate) mod context;
21pub use self::context::Context;
2223pub(crate) mod context_error;
24pub use self::context_error::ContextError;
2526pub(crate) mod meta_info;
27pub use meta_info::MetaInfo;
2829mod docs;
30pub(crate) use self::docs::Docs;
3132mod prelude;
33pub(crate) use self::prelude::Prelude;
3435pub(crate) mod ir;
3637mod source_loader;
38#[cfg(feature = "std")]
39pub use self::source_loader::FileSourceLoader;
40pub use self::source_loader::{NoopSourceLoader, SourceLoader};
4142mod unit_builder;
43pub use self::unit_builder::LinkerError;
44pub(crate) use self::unit_builder::UnitBuilder;
4546pub(crate) mod v1;
4748mod options;
49#[cfg(any(feature = "fmt", feature = "languageserver"))]
50pub(crate) use self::options::FmtOptions;
51pub use self::options::{Options, ParseOptionError};
5253mod location;
54pub(crate) use self::location::DynLocation;
55pub use self::location::{Located, Location};
5657pub mod meta;
58pub(crate) use self::meta::{Doc, ItemMeta};
59pub use self::meta::{MetaRef, SourceMeta};
6061mod pool;
62pub use self::pool::ItemId;
63pub(crate) use self::pool::{ModId, ModMeta, Pool};
6465mod named;
66pub use self::named::Named;
6768mod names;
69pub(crate) use self::names::Names;
7071mod visibility;
72pub(crate) use self::visibility::Visibility;
7374mod with_span;
75pub(crate) use self::with_span::{HasSpan, WithSpan};
7677mod compile;
78pub(crate) use self::compile::compile;
7980/// Helper alias for compile results.
81pub type Result<T, E = Error> = core::result::Result<T, E>;