logid 0.12.2

Rust logging framework using IDs to identify log entries.
Documentation
#[cfg(feature = "diagnostics")]
mod diagnostic_tests {
    use logid::log;
    use logid_core::{
        logging::{event_entry::AddonKind, LOGGER},
        lsp_types::{Diagnostic, DiagnosticSeverity, Position, Range},
    };
    use logid_derive::WarnLogId;

    #[derive(Debug, Default, WarnLogId, Clone)]
    enum TestWarnId {
        One,
        #[default]
        Two,
    }

    #[test]
    fn capture_single_logid_with_diagnostics() {
        let msg = "Set first log message";
        let diagnostics = Diagnostic {
            range: Range {
                start: Position {
                    line: 0,
                    character: 4,
                },
                end: Position {
                    line: 0,
                    character: 10,
                },
            },
            severity: Some(DiagnosticSeverity::INFORMATION),
            message: "Some diagnostic information useful for lsp implementations.".to_owned(),
            ..Default::default()
        };

        let recv = LOGGER.subscribe(TestWarnId::One.into()).unwrap();

        log!(
            TestWarnId::One,
            msg,
            add: AddonKind::Diagnostic(diagnostics.clone())
        );

        let event = recv
            .get_receiver()
            .recv_timeout(std::time::Duration::from_millis(10))
            .unwrap();

        let entry = event.get_entry();
        let act_diagnostics = entry.get_diagnostics().last().unwrap();
        assert_eq!(
            act_diagnostics, &diagnostics,
            "Set and stored diagnostics are not equal"
        );
    }
}