Struct Hash

Source
pub struct Hash;
Expand description

This class contains some tools for hashing data within StereoKit! Certain systems in StereoKit use string hashes instead of full strings for faster search and compare, like UI and Materials, so this class gives access to the code SK uses for hashing. StereoKit currently internally uses a 64 bit FNV hash, though this detail should be pretty transparent to developers

Implementations§

Source§

impl Hash

Source

pub fn string(str: impl AsRef<str>) -> IdHashT

This will hash the UTF8 representation of the given string into a hash value that StereoKit can use. https://stereokit.net/Pages/StereoKit/Hash/String.html

  • str - A string (UTF8),that will be hashed.

Returns a StereoKit hash representing the provided string. see also hash_string Hash::string_with

§Examples
use stereokit_rust::util::Hash;

let hash = Hash::string("Hello World");
assert_eq!(hash, 4420528118743043111);
Source

pub fn string_with(str: impl AsRef<str>, root: IdHashT) -> IdHashT

This will hash the UTF8 representation of the given string into a hash value that StereoKit can use. This overload allows you to combine your hash with an existing hash. https://stereokit.net/Pages/StereoKit/Hash/String.html

  • str - A string (UTF8),that will be hashed.
  • root - The hash value this new hash will start from.

Returns a StereoKit hash representing a combination of the provided string and the root hash. see also hash_string_with Hash::string

§Examples
use stereokit_rust::util::Hash;

let hash1 = Hash::string("Hello");
assert_eq!(hash1, 7201466553693376363);

let hash2 = Hash::string_with(" World", hash1);
assert_eq!(hash2, 4420528118743043111);
Source

pub fn int(val: i32) -> IdHashT

This will hash an integer into a hash value that StereoKit can use. This is helpful for adding in some uniqueness using something like a for loop index. This may be best when combined with additional hashes. https://stereokit.net/Pages/StereoKit/Hash/Int.html

  • val - An integer that will be hashed.

Returns a StereoKit hash representing the provided integer. see also hash_int Hash::int_with

§Examples
use stereokit_rust::util::Hash;

let hash = Hash::int(123456789);
assert_eq!(hash, 8379007418144316681);
Source

pub fn int_with(int: i32, root: IdHashT) -> IdHashT

This will hash an integer into a hash value that StereoKit can use. This is helpful for adding in some uniqueness using something like a for loop index. This overload allows you to combine your hash with an existing hash. https://stereokit.net/Pages/StereoKit/Hash/Int.html

  • val - An integer that will be hashed.
  • root - The hash value this new hash will start from.

Returns a StereoKit hash representing a combination of the provided string and the root hash. see also hash_int_with Hash::int

§Examples
use stereokit_rust::util::Hash;

let hash1 = Hash::int(123456789);
assert_eq!(hash1, 8379007418144316681);

let hash2 = Hash::int_with(123456789, hash1);
assert_eq!(hash2, 13864748593440029765);

Auto Trait Implementations§

§

impl Freeze for Hash

§

impl RefUnwindSafe for Hash

§

impl Send for Hash

§

impl Sync for Hash

§

impl Unpin for Hash

§

impl UnwindSafe for Hash

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more