arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/src/poly.rs
src/poly.rsRaw
 1pub mod poly;
 2
 3#[derive(Clone, Debug, PartialEq, Eq)]
 4pub struct Poly<O>(pub Vec<O>);
 5
 6impl Poly<u64>{
 7    pub fn new(n: usize) -> Self{
 8        Self(vec![0u64;n])
 9    }
10
11    pub fn buffer_size(&self) -> usize{
12        return self.0.len()
13    }
14
15    pub fn from_buffer(&mut self, n: usize, buf: &mut [u64]){
16        assert!(buf.len() >= n, "invalid buffer: buf.len()={} < n={}", buf.len(), n);
17        self.0 = Vec::from(&buf[..n]);
18    }
19
20    pub fn n(&self) -> usize{
21        return self.0.len()
22    }
23}