// @author kazuya kawaguchi (a.k.a. kazupon)
// @license MIT
//
//! Rust-side lazy decoder.
//!
//! See `design/007-binary-ast/rust-impl.md#rust-side-lazy-decoder` and
//! `js-decoder.md` (the JS counterpart) for the design rationale.
//!
//! The decoder is **stateless** with respect to the input bytes: every
//! lazy node struct is `Copy` and just remembers `(source_file, node_index)`.
//! Reads happen on demand from the underlying `&[u8]`.
//!
//! Module layout:
//!
//! - [`error`]: [`error::DecodeError`] enum.
//! - [`source_file`]: [`source_file::LazySourceFile`] (decoder root).
//! - [`helpers`]: shared low-level read helpers.
//! - [`nodes`]: lazy node structs (15 comment AST + 45 TypeNode = 60).
//! - [`visitor`]: [`visitor::LazyJsdocVisitor`] depth-first walker.
pub use DecodeError;
pub use ;
pub use LazySourceFile;
pub use LazyJsdocVisitor;