Crate rtlola_interpreter

Source
Expand description

§The RTLola Interpreter

The RTLola interpreter is a library used to evaluate RTLola specifications. It is designed such that it easily integrates into your setup through highly configurable APIs.

§Features

  • queued-api (Default): By default the library features a queued API that uses threads. If your target architecture doesn’t support threads, consider disabling this feature through “default-features = false”
  • serde: Enables Serde Serialization and Deserialization support for API interface structs.

§Usage

The main entrypoint of the application is the ConfigBuilder. It features multiple methods to configure the interpreter for your needs. From there you can create a Monitor or QueuedMonitor. The main interaction points of the library.

Re-exports§

pub use rtlola_frontend;

Modules§

config
This module contains all configuration related structures.
input
This module contains necessary traits and types to interface your datastructures with the interpreter. Most notably, the EventFactory trait represents a factory for events such that you can feed events of type EventFactory::Record to the monitor. To easy the implementation, there are helper traits like InputMap which works together with the MappedFactory.
monitor
The Monitor is the single threaded version of the API. Consequently deadlines of timed streams are only evaluated with a new event. Hence this API is more suitable for offline monitoring or embedded scenarios.
output
This module contains necessary trait to interface the output of the interpreter with your datastructures. The VerdictFactory trait represents a factory for verdicts given a VerdictRepresentation of the monitor.
queued
The QueuedMonitor is the multi-threaded version of the API. Deadlines are evaluated immediately and the resulting verdicts are returned through a queue retrieved using the output_queue method. This API should be used in an online monitoring setting.
rtlola_mir
This module covers the Mid-Level Intermediate Representation (MIR) of an RTLola specification.
time
This module contains the different time representations of the interpreter.

Macros§

izip
Create an iterator running multiple iterators in lockstep.

Structs§

ConfigBuilder
The main entry point of the application. Use the various methods to construct a configuration either for running the interpreter directly or to use the Monitor API interface.
Monitor
The Monitor is the central object exposed by the API.
QueuedMonitor
The QueuedMonitor is a threaded version of the Api allowing deadlines to be evaluated immediately.

Enums§

Value
The general type for holding all kinds of values.
ValueConvertError
Describes an error occurring when converting from or into a value.

Traits§

CondDeserialize
A helper trait to conditionally require a serde::Deserialize as a trait bound when the serde feature is activated.
CondSerialize
A helper trait to conditionally require a serde::Serialize as a trait bound when the serde feature is activated.

Type Aliases§

Time
The internal time representation.
ValueGetter
A function Type that projects a reference to From to a Value