Skip to main content

Crate chordsketch_ireal

Crate chordsketch_ireal 

Source
Expand description

iReal Pro AST types and a zero-dependency JSON debug serializer / parser.

This crate carries the iReal Pro data model plus the irealb:// URL parser (#2054) and serializer (#2052). Conversion to/from ChordPro (#2053 / #2061) and the iReal-style graphical renderer (#2058 et seq) build on this foundation in their own crates.

See ARCHITECTURE.md (in this crate’s directory) for the design decisions behind the AST shape, the field/variant choices made up front to keep the follow-up crates non-breaking, and the open questions deferred to the parser crate (#2054).

§Dependency policy

Like chordsketch-chordpro, this crate has zero external dependencies. Mirrors the policy that anchors the core AST in the standard library so downstream crates inherit a minimal compile surface and a stable transitive-dep tree.

Re-exports§

pub use ast::Accidental;
pub use ast::Bar;
pub use ast::BarChord;
pub use ast::BarChordKind;
pub use ast::BarLine;
pub use ast::BeatGrouping;
pub use ast::BeatPosition;
pub use ast::Chord;
pub use ast::ChordQuality;
pub use ast::ChordRoot;
pub use ast::ChordSize;
pub use ast::Ending;
pub use ast::IrealSong;
pub use ast::JumpTarget;
pub use ast::KeyMode;
pub use ast::KeySignature;
pub use ast::MusicalSymbol;
pub use ast::Section;
pub use ast::SectionLabel;
pub use ast::StaffText;
pub use ast::TimeSignature;
pub use json::FromJson;
pub use json::JsonError;
pub use json::JsonValue;
pub use json::ToJson;
pub use json::parse_json;
pub use parser::ParseError;
pub use parser::parse;
pub use parser::parse_collection;
pub use serialize::irealb_serialize;
pub use serialize::irealbook_serialize;
pub use serialize::serialize_open_protocol;
pub use serialize::serialize_open_protocol_collection;

Modules§

ast
AST types for an iReal Pro chart.
json
Zero-dependency JSON debug serializer.
parser
irealb:// URL parser.
serialize
IrealSongirealb:// URL serializer.

Functions§

version
Returns the library version (the workspace Cargo.toml version field, baked in at compile time).