Crate simploxide_bindgen

Crate simploxide_bindgen 

Source
Expand description

The simploxide-bindgen library crate contains everythinig that’s needed to parse SimpleX bot API docs and generate Rust code from them.

The functions that generate full Rust modules or a full crate are not included here though. There are some decisions to be made about the resulting file hierarchy and the type shapes of certain types, so full code generation is left to the client.

The simploxide-bindgen binary crate generates only one specific crate layout for the simploxide project needs.

The library is generic enough to allow implementing bindings for other languages. The implementor just needs to override std::fmt::Display for crate::types using a new type pattern and implement a syntax::binding::SyntaxInterpreter to generate a command syntax interpreter in the target language.

Modules§

commands
A COMMANDS.MD parser and utilities. Turns COMMANDS.md file into na Iterator of crate::commands::CommandResponse.
events
An EVENTS.MD parser and utilities. Turns EVENTS.md file into na Iterator that yields types::DisjointedDisriminatedUnionVariant.
syntax
A syntax parser and a generator of syntax interpreters. A module with a simple greedy lexer for the SimpleX api command syntax and a binding submodule that generates actual interpreters.
types
A TYPES.MD parser and utilities. Defines both data types that represent different typekinds in the SimpleX API docs as well as the parser that turns TYPES.md into an iterator which yields crate::types::ApiType.

Macros§

bufwriteln