The RxTender IDL syntax is heavily inspired from the rust language.

unstable

The syntax is not stable yet. Everything documented here can change in the future.

Defining an Item and an Error

Item and error types are declared as structures:

struct Status {
    id :string;
    value :int32;
}

In this example id and value are two fields of the Status structure. This can can then be used to send items or notify errors on a stream.

Scalar Types

Type Definition Default value
bool A boolean false
double A double precision real number 0.0
i32 A signed 32bits integer 0
u32 An unsigned 32bits integer 0
i64 A signed 64bits integer 0
u64 An unsigned 32bits integer 0
string An UTF8 string empty string

Defining A Stream

A stream is declared the following way.

stream State() -> Stream<I, E>;

where State is the name of the Stream, "I" is the type of the items, and E the type of the error. I and E must be declared as structs. A stream can also accept creation arguments:

stream State(foo: u32, bar: u32) -> Status;

Naming convention

items and streams are CamelCase.