Trait flowcore::Implementation [−][src]
An implementation runs with an array of inputs and returns a value (or null) and a bool indicating if it should be ran again.
Any ‘implementation’ of a function must implement this trait
Examples
Here is an example implementation of this trait:
use flowcore::{Implementation, RUN_AGAIN, RunAgain}; use serde_json::Value; use serde_json::json; #[derive(Debug)] pub struct Compare; /* A compare operator that takes two numbers and outputs the comparisons between them */ impl Implementation for Compare { fn run(&self, mut inputs: &[Value]) -> (Option<Value>, RunAgain) { let left = inputs[0].as_i64().unwrap(); let right = inputs[1].as_i64().unwrap(); let output = json!({ "equal" : left == right, "lt" : left < right, "gt" : left > right, "lte" : left <= right, "gte" : left >= right }); (None, RUN_AGAIN) } }
Required methods
fn run(&self, inputs: &[Value]) -> (Option<Value>, RunAgain)
[src]
The run
method is used to execute the implementation