pub struct Hashed<Hasher>where
Hasher: RollingHasher + ?Sized,{
len: usize,
hash: Hasher::Hash,
_marker: PhantomData<fn() -> Hasher>,
}Fields§
§len: usize§hash: Hasher::Hash§_marker: PhantomData<fn() -> Hasher>Implementations§
Source§impl<Hasher> Hashed<Hasher>where
Hasher: RollingHasher + ?Sized,
impl<Hasher> Hashed<Hasher>where
Hasher: RollingHasher + ?Sized,
fn new(len: usize, hash: Hasher::Hash) -> Self
Sourcepub fn concat(&self, other: &Self) -> Self
pub fn concat(&self, other: &Self) -> Self
Examples found in repository?
crates/competitive/src/string/rolling_hash.rs (line 441)
435 pub fn pow(&self, n: usize) -> Self {
436 let mut res = Hasher::empty_hash();
437 let mut x = *self;
438 let mut n = n;
439 while n > 0 {
440 if n & 1 == 1 {
441 res = res.concat(&x);
442 }
443 x = x.concat(&x);
444 n >>= 1;
445 }
446 res
447 }pub fn pow(&self, n: usize) -> Self
Trait Implementations§
impl<Hasher> Copy for Hashed<Hasher>where
Hasher: RollingHasher + ?Sized,
impl<Hasher> Eq for Hashed<Hasher>where
Hasher: RollingHasher + ?Sized,
Auto Trait Implementations§
impl<Hasher> Freeze for Hashed<Hasher>
impl<Hasher> RefUnwindSafe for Hashed<Hasher>
impl<Hasher> Send for Hashed<Hasher>
impl<Hasher> Sync for Hashed<Hasher>
impl<Hasher> Unpin for Hashed<Hasher>
impl<Hasher> UnwindSafe for Hashed<Hasher>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more