Skip to main content

Static

Trait Static 

Source
pub trait Static: 'static {
    // Required method
    fn hash_static(&self, h: &mut dyn Hasher);
}
Expand description

A value hashed into a TreeDef: the type of a #[tree(skip)] field (a configuration, a hyperparameter). A different value is a different structure, so a compiled function retraces instead of replaying a stale constant.

Implemented for integers, bool, char, (), strings, f32/f64 (by bit pattern: -0.0 differs from 0.0), DType, Device, Duration and Option, Vec, Box, Arc, arrays and tuples (up to 8) of them; #[derive(Static)] implements it for user types. (Not a blanket over Hash: that would rule out the float impls.)

Required Methods§

Source

fn hash_static(&self, h: &mut dyn Hasher)

Feeds the value to h.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Static for &'static str

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for ()

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for Duration

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for String

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for bool

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for char

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for f32

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for f64

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for i8

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for i16

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for i32

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for i64

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for i128

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for isize

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for u8

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for u16

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for u32

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for u64

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for u128

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl Static for usize

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static, B: Static, C: Static, D: Static, E: Static, F: Static, G: Static, H: Static> Static for (A, B, C, D, E, F, G, H)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static, B: Static, C: Static, D: Static, E: Static, F: Static, G: Static> Static for (A, B, C, D, E, F, G)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static, B: Static, C: Static, D: Static, E: Static, F: Static> Static for (A, B, C, D, E, F)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static, B: Static, C: Static, D: Static, E: Static> Static for (A, B, C, D, E)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static, B: Static, C: Static, D: Static> Static for (A, B, C, D)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static, B: Static, C: Static> Static for (A, B, C)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static, B: Static> Static for (A, B)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<A: Static> Static for (A,)

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<T: 'static> Static for PhantomData<T>

Source§

fn hash_static(&self, _: &mut dyn Hasher)

Source§

impl<T: Static + ?Sized> Static for Arc<T>

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<T: Static + ?Sized> Static for Box<T>

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<T: Static, const N: usize> Static for [T; N]

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<T: Static> Static for Option<T>

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Source§

impl<T: Static> Static for Vec<T>

Source§

fn hash_static(&self, h: &mut dyn Hasher)

Implementors§