Report a bug
If you spot a problem with this page, click here to create a GitHub issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.

mir.ion.symbol_table

static immutable string[] IonSystemSymbolTable_v1;
Each version of the Ion specification defines the corresponding system symbol table version. Ion 1.0 uses the "$ion" symbol table, version 1, and future versions of Ion will use larger versions of the "$ion" symbol table. $ion_1_1 will probably use version 2, while $ion_2_0 might use version 5.
Applications and users should never have to care about these symbol table versions, since they are never explicit in user data: this specification disallows (by ignoring) imports named "$ion".
Here are the system symbols for Ion 1.0.
enum IonSystemSymbol: ubyte;
zero
ion
ion_1_0
ion_symbol_table
name
version_
imports
symbols
max_id
ion_shared_symbol_table
struct IonSymbolTable;
pure nothrow @nogc void initialize();
pure nothrow @nogc void finalize();
Prepare the table for writing. The table shouldn't be used after that.
const pure nothrow @nogc uint find(scope const(char)[] key);
const pure nothrow @nogc uint find(scope const(char)[] key, uint hash);
pure nothrow @nogc uint insert(scope const(char)[] key);
pure nothrow @nogc uint insert(scope const(char)[] key, uint hash);