Webapp
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
use crate::metric_primitive::MetricPrimitive;
|
||||
use crate::timestamp::Timestamp;
|
||||
use serde::Serialize;
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
/// Key type for the engine's primary index.
|
||||
///
|
||||
/// Variants are ordered top to bottom as declared (derived `Ord` compares the
|
||||
/// discriminant first), which is what carves the map into contiguous ranges:
|
||||
/// logs, then params, then metric declarations, then buckets.
|
||||
#[allow(dead_code)]
|
||||
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize)]
|
||||
pub enum IndexKey {
|
||||
/// Marker for the start of the whole range. Never inserted, only navigated to.
|
||||
Start,
|
||||
IngestedLog {
|
||||
sequence: u64,
|
||||
timestamp: Timestamp,
|
||||
},
|
||||
/// Marker between the log range and the param range.
|
||||
LogParamSplit,
|
||||
ParamDeclaration {
|
||||
name: String,
|
||||
},
|
||||
/// Marker between the param range and the metric declaration range.
|
||||
ParamMetricSplit,
|
||||
MetricDeclaration {
|
||||
name: String,
|
||||
},
|
||||
/// Marker between metric declarations and their buckets.
|
||||
MetricBucketSplit,
|
||||
Bucket {
|
||||
metric_name: String,
|
||||
labels: BTreeMap<String, MetricPrimitive>,
|
||||
},
|
||||
/// Marker for the end of the whole range. Nothing sorts after this.
|
||||
End,
|
||||
}
|
||||
Reference in New Issue
Block a user