Module prelude

Source
Expand description

This prelude contains everything you need to use this crate.

Re-exports§

pub use iridis_file_ext;

Modules§

iridis_node
This module contains everything to write an iridis node.
iridis_runtime_core
This module defines the core elements common to crates related to the runtime.
thirdparty

Structs§

DataLayout
Represents the data layout of the application.
DataflowLayout
Represents the a Dataflow application! This is the main struct that contains all the data and debug layouts.
DataflowMessage
Dataflow message. Cheap to clone
DebugLayout
Represents the debug layout of the application: the labels and the nodes/primitives relationship.
DynamicallyLinkedFileExtPlugin
This struct represents a dynamically linked Plugin. It loads the plugin from a shared library at runtime, storing the handle as a Box<dyn FileExtPlugin>. It’s really important to store the library as well, because once the library is dropped the handle will be invalid.
DynamicallyLinkedNode
This struct represents a dynamically linked node. It loads the node from a shared library at runtime, storing the handle as a Box<dyn Node>. It’s really important to store the library as well, because once the library is dropped the handle will be invalid.
DynamicallyLinkedUrlSchemePlugin
This struct represents a dynamically linked Plugin. It loads the plugin from a shared library at runtime, storing the handle as a Box<dyn UrlSchemePlugin>. It’s really important to store the library as well, because once the library is dropped the handle will be invalid.
FileExtLoader
Use this struct to load and store the plugins.
FileExtManager
Use this struct to load files according to their extension.
FlowLayout
Represents the flows of the application.
Header
Header for a dataflow message
Input
Typed Input to receive data from the dataflow
InputID
Represents a unique identifier for an Input in the graph.
Inputs
Inputs let you manage input connections during a node implementation
NodeDataLayout
For internal use, this struct represents all the primitives belonging to a node. It is used to create the layout of the node.
NodeDebugLayout
For internal use, this struct represents the debug layout of a node. It is used to store the labels of the primitives in the node.
NodeID
A unique identifier for a node in the graph, it’s composed of a label and a UUID. By design the only thing the runtime needs to know about a node is its UUID. But for debugging purposes, we also keep the label.
NodeLayout
For internal use, this struct represents the layout of a node, both the data and the debug layout.
Output
Typed Output to receive data from the dataflow
OutputID
Represents a unique identifier for an Output in the graph.
Outputs
Outputs let you manage output connections during a node implementation
Queries
Queries let you manage query connections during a node implementation
Query
Typed Query to query data from the dataflow
QueryID
Represents a unique identifier for a Query in the graph.
Queryable
Typed Queryable to queryable data to the dataflow
QueryableID
Represents a unique identifier for a Queryable in the graph.
Queryables
Queryables let you manage queryable connections during a node implementation
RawInput
Not typed Input to receive data from the dataflow
RawOutput
Not typed Output to receive data from the dataflow
RawQuery
Not typed Query to receive data from the dataflow
RawQueryable
Not typed Queryable to receive data from the dataflow
SharedDataLayout
Represents a shared Data only layout. It is used to construct a DataflowLayout easily.
TypedDataflowMessage
Typed dataflow message
UrlSchemeLoader
Use this struct to load and store the plugins.
UrlSchemeManager
Use this struct to load files according to their url.

Enums§

PrimitiveID
Represents a unique identifier for a primitive in the graph.
RuntimeFileExt
This is the main enum of this module. It represents a plugin that can be either statically linked or dynamically linked, allowing the runtime to use either type of plugin interchangeably.
RuntimeNode
This is the main enum of this module. It represents a node that can be either statically linked or dynamically linked, allowing the runtime to use either type of node interchangeably.
RuntimeUrlScheme
This is the main enum of this module. It represents a plugin that can be either statically linked or dynamically linked, allowing the runtime to use either type of plugin interchangeably.

Traits§

ArrowMessage
Trait to represent a message that can be converted to and from an Arrow array.
FileExtPlugin
This trait must be implemented in order to make a plugin compatible with the iridis_file_ext crate.
Node
The Node trait defines the interface for all nodes in the iridis runtime.
UrlSchemePlugin
This trait must be implemented in order to make a plugin compatible with the iridis_url_scheme crate.

Functions§

extract_union_data
Helper function to extract data from a union array.
get_union_fields
Helper function to get the union fields of a message.
make_union_array
Helper function to create a union array.
make_union_fields
Helper function to create a union field.
unpack_union
Helper function to unpack a union array.

Type Aliases§

DynamicallyLinkedFileExtPluginInstance
This type is used to represent the return type of the C symbolic function that instantiates the plugin.
DynamicallyLinkedNodeInstance
The DynamicallyLinkedNodeInstance type is used for the C symbolic function
DynamicallyLinkedUrlSchemePluginInstance
This type is used to represent the return type of the C symbolic function that instantiates the plugin.
MessageReceiver
MPSC Message receiver. Cannot be cloned
MessageSender
MPSC Message sender. Can be cloned, cheap to clone

Attribute Macros§

file_ext_plugin
Use this macro to mark an impl block on a file extension plugin. This will alter the new and load methods to return a tokio::task::JoinHandle with the provided runtime. The parameter must be a function that takes an async closure and returns a JoinHandle.
node
Use this macro to mark an impl block on a node. This will alter the new and start methods to return a tokio::task::JoinHandle with the provided runtime. The parameter must be a function that takes an async closure and returns a JoinHandle.
url_scheme_plugin
Use this macro to mark an impl block on a url scheme plugin. This will alter the new and load methods to return a tokio::task::JoinHandle with the provided runtime. The parameter must be a function that takes an async closure and returns a JoinHandle.

Derive Macros§

ArrowMessage
Apply this macro to a struct or enum to implement the ArrowMessage trait.
FileExtPlugin
Apply this macro to a struct to generate the C symbols and the according tokio::runtime::Runtime.
Node
Apply this macro to a struct to generate the C symbols and the according tokio::runtime::Runtime.
UrlSchemePlugin
Apply this macro to a struct to generate the C symbols and the according tokio::runtime::Runtime.