Crate rant

Source
Expand description

§Rant

Rant is a high-level procedural templating language. It is designed to help you write more dynamic and expressive templates, dialogue, stories, names, test data, and much more.

For language documentation, see the Rant Reference.

§The Rant context

All programs are run through a Rant context, represented by the Rant struct. It allows you to execute Rant programs, define and retrieve global variables, manipulate the RNG, and compile Rant code.

§Reading compiler errors

You will notice that the Err variant of the Rant::compile* methods is () instead of providing an error list. Instead, errors and warnings are reported via implementors of the Reporter trait, which allows the user to control what happens to messages emitted by the compiler. Currently, Rant has two built-in Reporter implementations: the unit type (), and Vec<CompilerMessage>. You can also make your own custom reporters to suit your specific needs.

Modules§

compiler
data
runtime

Macros§

runtime_error

Structs§

DefaultModuleResolver
The default filesystem-based module resolver.
ModuleResolveError
Represents an error that occurred when attempting to load a Rant module.
NoModuleResolver
Stub module resolver that completely disables modules.
Rant
A Rant execution context.
RantFunction
A function callable from Rant.
RantList
Represents Rant’s list type, which stores an ordered, mutable collection of values.
RantListHandle
Reference handle for a Rant list
RantMap
Represents Rant’s map type, which stores a mutable collection of key-value pairs. Map keys are always strings.
RantMapHandle
Reference handle for a Rant map
RantNothing
Rant’s “nothing” value.
RantOptions
Provides options for customizing the creation of a Rant instance.
RantOrderedCollection
Filter type that represents any indexable (ordered) Rant collection type.
RantProgram
A compiled Rant program.
RantProgramInfo
Contains metadata used to identify a loaded program.
RantRange
Represents Rant’s range type, which characterizes a closed range of integers with an exclusive end bound.
RantSelector
Represents a Rant selector instance used by the resolver to select block branches.
RantSelectorHandle
Reference handle for a Rant selector.
RantString
Represents Rant’s string type.
RantTuple
Represents Rant’s tuple type, which stores an ordered, immutable collection of values.
RantTupleHandle
Reference handle for a Rant tuple
RequiredVarArgs
Semantic wrapper around a Vec<T>.
VarArgs
Semantic wrapper around a Vec<T>.

Enums§

DataSourceRegisterError
Represents error states that can occur when registering a data source on a Rant execution context.
IndexError
Error produced by indexing a RantValue.
KeyError
Error produced by keying a RantValue.
ModuleLoadError
Represents error states that can occur when loading a module.
ModuleResolveErrorReason
Represents the reason for which a Rant module failed to load.
RantFunctionInterface
Defines endpoint variants for Rant functions.
RantNumber
Represents a dynamically-typed Rant number.
RantValue
A dynamically-typed Rant value.
RantValueType
A lightweight representation of a Rant value’s type.
RantVar
Represents a Rant variable of one of two flavors: by-value or by-reference.
SelectorError
Represents error states of a selector.
SelectorMode
Defines available branch selection modes for selectors.
SliceError
Error produced by slicing a RantValue.
ValueError
Error produced by a RantValue operator or conversion.

Constants§

BUILD_VERSION
The build version according to the crate metadata at the time of compiling.
DEFAULT_PROGRAM_NAME
The default name given to programs compiled from raw strings.
RANT_FILE_EXTENSION
The file extension that Rant expects modules to have.
RANT_LANG_VERSION
The Rant language version implemented by this library.
TYPENAME_BOOL
TYPENAME_FLOAT
TYPENAME_FUNCTION
TYPENAME_INT
TYPENAME_LIST
TYPENAME_MAP
TYPENAME_NOTHING
TYPENAME_RANGE
TYPENAME_SELECTOR
TYPENAME_STRING
TYPENAME_TUPLE

Traits§

FromRant
FromRantArgs
Converts from argument list to tuple of impl TryFromRant values
IntoRant
Enables infallible conversion into a RantValue.
IntoRantFunction
Trait for converting something to a Rant function.
ModuleResolver
Represents the features required for a module resolver.
TryFromRant
Enables fallible conversion from a RantValue.
TryIntoRant
Enables fallible conversion into a RantValue.

Type Aliases§

ModuleResolveResult
Result type used by the module loader.
RantFunctionHandle
Type alias for Rc<RantFunction>
ValueIndexResult
The result type used by Rant value index read operations.
ValueIndexSetResult
The result type used by Rant value index write operations.
ValueKeyResult
The result type used by Rant value key read operations.
ValueKeySetResult
The result type used by Rant value key write operations.
ValueResult
The result type used by Rant value operators and conversion.
ValueSliceResult
The result type used by Rant value slice read operations.
ValueSliceSetResult
The result type used by Rant value slice write operations.