use serde::{Deserialize, Serialize};
use alloc::vec::Vec;
use crate::DType;
#[derive(Clone, Copy, Hash, PartialEq, Eq, PartialOrd, Ord, Debug, Serialize, Deserialize)]
pub struct TensorId {
value: u64,
}
#[derive(Hash, Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum TensorStatus {
ReadOnly,
ReadWrite,
NotInit,
}
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
pub struct TensorDescription {
pub id: TensorId,
pub shape: Vec<usize>,
pub status: TensorStatus,
pub dtype: DType,
}
impl TensorId {
pub fn new(value: u64) -> Self {
Self { value }
}
}