#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Clone, Copy)]
pub struct Vec3i {
pub i: usize,
pub j: usize,
pub k: usize,
}
impl Vec3i {
pub fn new(i: usize, j: usize, k: usize) -> Self {
Vec3i { i, j, k }
}
pub fn product(&self) -> usize {
self.i * self.j * self.k
}
}
impl From<Vec3i> for (usize, usize, usize) {
fn from(val: Vec3i) -> Self {
(val.i, val.j, val.k)
}
}
impl From<(usize, usize, usize)> for Vec3i {
fn from(tuple: (usize, usize, usize)) -> Self {
let (i, j, k) = tuple;
Vec3i { i, j, k }
}
}