[−][src]Trait flow_impl::Implementation
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 flow_impl::{Implementation, RUN_AGAIN, RunAgain, RuntimeError}; 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]) -> (Result<Option<Value>, RuntimeError>, 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 }); (Ok(None), RUN_AGAIN) } }
Required methods
fn run(
&self,
inputs: &[Value]
) -> (Result<Option<Value>, RuntimeError>, RunAgain)
&self,
inputs: &[Value]
) -> (Result<Option<Value>, RuntimeError>, RunAgain)
The run method is used to execute the implementation