Module group

Module group 

Source
Expand description

Handler which groups multiple handlers together

use streamson_lib::{handler, matcher, strategy::{self, Strategy}};
use std::{io, sync::{Arc, Mutex}};


let group_handler = handler::Group::new()
    .add_handler(Arc::new(Mutex::new(handler::Unstringify::new())))
    .add_handler(Arc::new(Mutex::new(handler::Output::new(io::stdout()))));

let matcher = matcher::Simple::new(r#"{"users"}[]{"name"}"#).unwrap();
let mut trigger = strategy::Trigger::new();
trigger.add_matcher(Box::new(matcher), Arc::new(Mutex::new(group_handler)));

for input in vec![
    br#"{"users": [{"id": 1, "name": "first"}, {"#.to_vec(),
    br#""id": 2, "name": "second}]}"#.to_vec(),
] {
    trigger.process(&input).unwrap();
}

Structsยง

Group
A structure which groups handlers and determines a way how handlers are triggered