#![allow(missing_docs)]
use crate::basic::{Marker, PropTag, Value, EID};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialOrd, Ord, PartialEq, Eq)]
pub struct Index {
pub eid: EID,
pub prop: [u8; 8],
}
impl Index {
pub fn new() -> Self {
Index {
eid: EID::new(0),
prop: [0; 8],
}
}
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize)]
pub struct Atom {
pub eid: EID,
pub prop: PropTag,
pub value: Value,
}
impl Atom {
pub fn empty() -> Self {
Atom {
eid: EID::new(0),
prop: PropTag::new("EMPTY"),
value: Value::Mark(Marker::new("NOT_SET")),
}
}
pub fn new(eid: EID, prop: PropTag, value: Value) -> Self {
Atom { eid, prop, value }
}
pub fn valid(&self) -> bool {
self.eid.is_valid()
}
}