fn run()

in src/flowgger/splitter/line_splitter.rs [10:41]


    fn run(
        &self,
        buf_reader: BufReader<T>,
        tx: SyncSender<Vec<u8>>,
        decoder: Box<dyn Decoder>,
        encoder: Box<dyn Encoder>,
    ) {
        for line in buf_reader.lines() {
            let line = match line {
                Ok(line) => line,
                Err(e) => match e.kind() {
                    ErrorKind::Interrupted => continue,
                    ErrorKind::InvalidInput | ErrorKind::InvalidData => {
                        let _ = writeln!(stderr(), "Invalid UTF-8 input");
                        continue;
                    }
                    ErrorKind::WouldBlock => {
                        let _ = writeln!(
                            stderr(),
                            "Client hasn't sent any data for a while - Closing \
                             idle connection"
                        );
                        return;
                    }
                    _ => return,
                },
            };
            if let Err(e) = handle_line(&line, &tx, &decoder, &encoder) {
                let _ = writeln!(stderr(), "{}: [{}]", e, line.trim());
            }
        }
    }