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
47
48
49
50
51
52
use crate::{
Attribute,
iterators::{
trace_attribute_iterator::{
CategoricalTraceAttributeIterator, NumericAttributeIterator, TimeAttributeIterator,
},
ref_trace_iterator::RefTraceIterator,
},
};
pub trait IntoAttributeIterator {
/// Iterator over the categorical attribute values of traces,
/// i.e. for traces that do not have the attribute set, a None is included.
/// A call to .flatten() transforms this to remove those values.
fn iter_categorical(&self, attribute: Attribute) -> CategoricalTraceAttributeIterator<'_>;
/// Iterator over tbe numeric attribute values of traces,
/// i.e. for traces that do not have the attribute set, a None is included.
/// A call to .flatten() transforms this to remove those values.
fn iter_numeric(&self, attribute: Attribute) -> NumericAttributeIterator<'_>;
/// Iterator over the time attribute values of traces,
/// i.e. for traces that do not have the attribute set, a None is included.
/// A call to .flatten() transforms this to remove those values.
fn iter_time(&self, attribute: Attribute) -> TimeAttributeIterator<'_>;
}
pub trait IntoAttributeTraceIterator {
/// Iterator over traces and their categorical attribute values,
/// i.e. for traces that do not have the attribute set, a None is included.
/// A call to .flatten() transforms this to remove those values.
fn iter_categorical_and_traces(
&self,
attribute: Attribute,
) -> std::iter::Zip<RefTraceIterator<'_>, CategoricalTraceAttributeIterator<'_>>;
/// Iterator over traces and their numeric attribute values,
/// i.e. for traces that do not have the attribute set, a None is included.
/// A call to .flatten() transforms this to remove those values.
fn iter_numeric_and_traces(
&self,
attribute: Attribute,
) -> std::iter::Zip<RefTraceIterator<'_>, NumericAttributeIterator<'_>>;
/// Iterator over traces and their time attribute values,
/// i.e. for traces that do not have the attribute set, a None is included.
/// A call to .flatten() transforms this to remove those values.
fn iter_time_and_traces(
&self,
attribute: Attribute,
) -> std::iter::Zip<RefTraceIterator<'_>, TimeAttributeIterator<'_>>;
}