use super::Identifier;
pub type TraceSegment = u8;
#[derive(Debug, Eq, PartialEq, Clone, Copy)]
pub struct IndexedTraceAccess {
trace_segment: TraceSegment,
col_idx: usize,
row_offset: usize,
}
impl IndexedTraceAccess {
pub fn new(trace_segment: TraceSegment, col_idx: usize, row_offset: usize) -> Self {
Self {
trace_segment,
col_idx,
row_offset,
}
}
pub fn trace_segment(&self) -> TraceSegment {
self.trace_segment
}
pub fn col_idx(&self) -> usize {
self.col_idx
}
pub fn row_offset(&self) -> usize {
self.row_offset
}
}
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct NamedTraceAccess {
name: Identifier,
idx: usize,
row_offset: usize,
}
impl NamedTraceAccess {
pub fn new(name: Identifier, idx: usize, row_offset: usize) -> Self {
Self {
name,
idx,
row_offset,
}
}
pub fn name(&self) -> &str {
self.name.name()
}
pub fn idx(&self) -> usize {
self.idx
}
pub fn row_offset(&self) -> usize {
self.row_offset
}
}