Skip to main content

brink_format/
lib.rs

1//! Binary interface between the brink compiler and runtime.
2//!
3//! This crate defines the types shared across the compiler/runtime boundary:
4//! `DefinitionId`, opcodes, value types, line templates, and the top-level
5//! `StoryData` container.
6//!
7//! `brink-runtime` depends ONLY on this crate — nothing else from brink.
8
9mod codec;
10mod counting;
11mod definition;
12mod id;
13mod inkb;
14mod inkl;
15mod line;
16mod opcode;
17mod save;
18mod story;
19mod value;
20
21#[cfg(any(feature = "inkt", feature = "inkt-write"))]
22mod inkt;
23
24pub use counting::CountingFlags;
25pub use definition::{
26    AddressDef, AddressPath, ContainerDef, ExternalFnDef, GlobalVarDef, LineEntry, ListDef,
27    ListItemDef, LocaleData, LocaleLineEntry, LocaleScopeTable, ScopeLineTable, SlotInfo,
28    SourceLocation, content_hash,
29};
30pub use id::{DefinitionId, DefinitionTag, LineId, NameId};
31pub use inkb::{
32    InkbIndex, SectionEntry, SectionKind, assemble_inkb, read_inkb, read_inkb_index,
33    read_section_address_paths, read_section_addresses, read_section_containers,
34    read_section_externals, read_section_line_tables, read_section_list_defs,
35    read_section_list_items, read_section_list_literals, read_section_name_table,
36    read_section_variables, write_inkb, write_section_address_paths, write_section_addresses,
37    write_section_containers, write_section_externals, write_section_line_tables,
38    write_section_list_defs, write_section_list_items, write_section_list_literals,
39    write_section_name_table, write_section_variables,
40};
41pub use inkl::{read_inkl, write_inkl};
42pub use line::{
43    LineContent, LineFlags, LinePart, LineTemplate, PluralCategory, PluralResolver, SelectKey,
44};
45pub use opcode::{ChoiceFlags, DecodeError, Opcode, SequenceKind};
46pub use save::{LoadReport, SAVE_FORMAT_VERSION, SaveState, VisitEntry};
47pub use story::StoryData;
48pub use value::{ListValue, Value, ValueType};
49
50#[cfg(any(feature = "inkt", feature = "inkt-write"))]
51pub use inkt::write_inkt;
52#[cfg(feature = "inkt")]
53pub use inkt::{InktParseError, read_inkt};