summaryrefslogtreecommitdiffstats
path: root/third_party/rust/neqo-http3/src/qlog.rs
blob: c3a13fd19ff65d7b19fb09caac9663ac7e32fe91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.

// Functions that handle capturing QLOG traces.

use std::convert::TryFrom;

use neqo_common::qlog::NeqoQlog;
use neqo_transport::StreamId;
use qlog::{
    self,
    events::{DataRecipient, EventData},
};

pub fn h3_data_moved_up(qlog: &mut NeqoQlog, stream_id: StreamId, amount: usize) {
    qlog.add_event_data(|| {
        let ev_data = EventData::DataMoved(qlog::events::quic::DataMoved {
            stream_id: Some(stream_id.as_u64()),
            offset: None,
            length: Some(u64::try_from(amount).unwrap()),
            from: Some(DataRecipient::Transport),
            to: Some(DataRecipient::Application),
            raw: None,
        });

        Some(ev_data)
    });
}

pub fn h3_data_moved_down(qlog: &mut NeqoQlog, stream_id: StreamId, amount: usize) {
    qlog.add_event_data(|| {
        let ev_data = EventData::DataMoved(qlog::events::quic::DataMoved {
            stream_id: Some(stream_id.as_u64()),
            offset: None,
            length: Some(u64::try_from(amount).unwrap()),
            from: Some(DataRecipient::Application),
            to: Some(DataRecipient::Transport),
            raw: None,
        });

        Some(ev_data)
    });
}