1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
use crate::hash_type;
use crate::HoloHash;
pub type AgentPubKey = HoloHash<hash_type::Agent>;
pub type DnaHash = HoloHash<hash_type::Dna>;
pub type DhtOpHash = HoloHash<hash_type::DhtOp>;
pub type EntryHash = HoloHash<hash_type::Entry>;
pub type HeaderHash = HoloHash<hash_type::Header>;
pub type NetIdHash = HoloHash<hash_type::NetId>;
pub type WasmHash = HoloHash<hash_type::Wasm>;
pub type AnyDhtHash = HoloHash<hash_type::AnyDht>;
impl From<HeaderHash> for AnyDhtHash {
fn from(hash: HeaderHash) -> Self {
hash.retype(hash_type::AnyDht::Header)
}
}
impl From<EntryHash> for AnyDhtHash {
fn from(hash: EntryHash) -> Self {
hash.retype(hash_type::AnyDht::Entry)
}
}
impl From<AgentPubKey> for AnyDhtHash {
fn from(hash: AgentPubKey) -> Self {
hash.retype(hash_type::AnyDht::Entry)
}
}
impl From<AnyDhtHash> for HeaderHash {
fn from(hash: AnyDhtHash) -> Self {
hash.retype(hash_type::Header)
}
}
impl From<AnyDhtHash> for EntryHash {
fn from(hash: AnyDhtHash) -> Self {
hash.retype(hash_type::Entry)
}
}
#[cfg(feature = "serialization")]
use holochain_serialized_bytes::prelude::*;
#[cfg(feature = "serialization")]
#[derive(Debug, PartialEq, serde::Serialize, serde::Deserialize, SerializedBytes)]
#[repr(transparent)]
#[serde(transparent)]
pub struct EntryHashes(pub Vec<EntryHash>);