pub struct Hash(/* private fields */);Expand description
The primitive hash that among other things is used to reference items, types, and native functions.
§Examples
use rune::Hash;
assert_ne!(Hash::index(0), Hash::index(1));Implementations§
Source§impl Hash
impl Hash
Sourcepub const EMPTY: Hash
pub const EMPTY: Hash
The empty hash.
§Examples
use rune::Hash;
assert_ne!(Hash::index(0), Hash::EMPTY);
assert!(Hash::EMPTY.as_non_empty().is_none());Sourcepub fn as_non_empty(&self) -> Option<NonZeroHash>
pub fn as_non_empty(&self) -> Option<NonZeroHash>
Return the current hash if it is non-empty.
§Examples
use rune::Hash;
assert!(Hash::index(0).as_non_empty().is_some());
assert!(Hash::EMPTY.as_non_empty().is_none());Sourcepub fn index(index: usize) -> Hash
pub fn index(index: usize) -> Hash
Construct a hash from an index.
§Examples
use rune::Hash;
assert_ne!(Hash::index(0), Hash::index(1));Sourcepub fn ident(name: &str) -> Hash
pub fn ident(name: &str) -> Hash
Get the hash corresponding to a string identifier like function or
hello_world.
§Examples
use rune::Hash;
assert_ne!(Hash::ident("foo"), Hash::index(0));Sourcepub fn type_hash(path: impl ToTypeHash) -> Hash
pub fn type_hash(path: impl ToTypeHash) -> Hash
Get the hash of a type.
§Examples
use rune::Hash;
assert!(!Hash::type_hash(["main"]).is_empty());
assert!(!Hash::type_hash(["main", "other"]).is_empty());Sourcepub fn associated_function(
type_hash: impl IntoHash,
name: impl IntoHash,
) -> Hash
pub fn associated_function( type_hash: impl IntoHash, name: impl IntoHash, ) -> Hash
Construct a hash to an instance function, where the instance is a pre-determined type.
§Examples
use rune::Hash;
use rune::runtime::Protocol;
assert!(!Hash::associated_function("main", &Protocol::INTO_TYPE_NAME).is_empty());Sourcepub fn field_function(
protocol: impl IntoHash,
type_hash: Hash,
name: impl IntoHash,
) -> Hash
pub fn field_function( protocol: impl IntoHash, type_hash: Hash, name: impl IntoHash, ) -> Hash
Construct a hash corresponding to a field function.
§Examples
use rune::{Hash, TypeHash};
use rune::runtime::Protocol;
assert!(!Hash::field_function(&Protocol::ADD, i64::HASH, "field").is_empty());Sourcepub fn index_function(
protocol: impl IntoHash,
type_hash: Hash,
index: Hash,
) -> Hash
pub fn index_function( protocol: impl IntoHash, type_hash: Hash, index: Hash, ) -> Hash
Construct an index function.
§Examples
use rune::{Hash, TypeHash};
use rune::runtime::Protocol;
assert!(!Hash::index_function(&Protocol::ADD, i64::HASH, Hash::index(1)).is_empty());Sourcepub fn static_bytes(bytes: &[u8]) -> Hash
pub fn static_bytes(bytes: &[u8]) -> Hash
Get the hash corresponding to a static byte array.
Sourcepub fn object_keys<I>(keys: I) -> Hash
pub fn object_keys<I>(keys: I) -> Hash
Hash the given iterator of object keys.
Sourcepub const fn with_generics(self, generics: Hash) -> Hash
pub const fn with_generics(self, generics: Hash) -> Hash
Mix in generics hash.
The generics hash must be a combination of the output from
with_type_parameters and with_function_parameters.
Sourcepub const fn with_type_parameters(self, ty: Hash) -> Hash
pub const fn with_type_parameters(self, ty: Hash) -> Hash
Mix the current hash with type parameters.
Sourcepub const fn with_function_parameters(self, f: Hash) -> Hash
pub const fn with_function_parameters(self, f: Hash) -> Hash
Mix the current hash with function parameters.
Trait Implementations§
Source§impl<'__de, __A> Decode<'__de, Binary, __A> for Hashwhere
__A: Allocator,
impl<'__de, __A> Decode<'__de, Binary, __A> for Hashwhere
__A: Allocator,
Source§const IS_BITWISE_DECODE: bool = false
const IS_BITWISE_DECODE: bool = false
Source§impl<'__de, __A> Decode<'__de, Text, __A> for Hashwhere
__A: Allocator,
impl<'__de, __A> Decode<'__de, Text, __A> for Hashwhere
__A: Allocator,
Source§const IS_BITWISE_DECODE: bool = false
const IS_BITWISE_DECODE: bool = false
Source§impl<'de> Deserialize<'de> for Hash
impl<'de> Deserialize<'de> for Hash
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Hash, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Hash, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Encode<Binary> for Hash
impl Encode<Binary> for Hash
Source§const IS_BITWISE_ENCODE: bool = false
const IS_BITWISE_ENCODE: bool = false
Source§impl Encode<Text> for Hash
impl Encode<Text> for Hash
Source§const IS_BITWISE_ENCODE: bool = false
const IS_BITWISE_ENCODE: bool = false
Source§impl From<Hash> for ConstValue
impl From<Hash> for ConstValue
Source§impl FromValue for Hash
impl FromValue for Hash
Source§fn from_value(value: Value) -> Result<Self, RuntimeError>
fn from_value(value: Value) -> Result<Self, RuntimeError>
Source§impl InstallWith for Hash
impl InstallWith for Hash
Source§fn install_with(_: &mut Module) -> Result<(), ContextError>
fn install_with(_: &mut Module) -> Result<(), ContextError>
Source§impl MaybeTypeOf for Hash
impl MaybeTypeOf for Hash
Source§fn maybe_type_of() -> Result<DocType>
fn maybe_type_of() -> Result<DocType>
Source§impl Ord for Hash
impl Ord for Hash
Source§impl PartialEq<Hash> for NonZeroHash
impl PartialEq<Hash> for NonZeroHash
Source§impl PartialEq<NonZeroHash> for Hash
impl PartialEq<NonZeroHash> for Hash
Source§impl PartialOrd for Hash
impl PartialOrd for Hash
Source§impl Serialize for Hash
impl Serialize for Hash
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Source§impl ToConstValue for Hash
impl ToConstValue for Hash
Source§fn to_const_value(self) -> Result<ConstValue, RuntimeError>
fn to_const_value(self) -> Result<ConstValue, RuntimeError>
Source§impl TypeOf for Hash
impl TypeOf for Hash
Source§const STATIC_TYPE_INFO: AnyTypeInfo
const STATIC_TYPE_INFO: AnyTypeInfo
Source§const PARAMETERS: Hash = Hash::EMPTY
const PARAMETERS: Hash = Hash::EMPTY
impl Copy for Hash
impl Eq for Hash
impl IntoOutput for Hash
impl StructuralPartialEq for Hash
impl ToTypeHash for Hash
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> 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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.