use super::Identifier;
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Clone)]
pub struct VectorAccess {
name: Identifier,
idx: usize,
}
impl VectorAccess {
pub fn new(name: Identifier, idx: usize) -> Self {
Self { name, idx }
}
pub fn name(&self) -> &str {
self.name.name()
}
pub fn idx(&self) -> usize {
self.idx
}
}
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Clone)]
pub struct MatrixAccess {
name: Identifier,
row_idx: usize,
col_idx: usize,
}
impl MatrixAccess {
pub fn new(name: Identifier, row_idx: usize, col_idx: usize) -> Self {
Self {
name,
row_idx,
col_idx,
}
}
pub fn name(&self) -> &str {
self.name.name()
}
pub fn row_idx(&self) -> usize {
self.row_idx
}
pub fn col_idx(&self) -> usize {
self.col_idx
}
}
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Range {
start: usize,
end: usize,
}
impl Range {
pub fn new(start: usize, end: usize) -> Self {
Self { start, end }
}
pub fn start(&self) -> usize {
self.start
}
pub fn end(&self) -> usize {
self.end
}
}