Struct holochain_zome_types::zome::Zome
source · Expand description
A Holochain Zome. Includes the ZomeDef as well as the name of the Zome.
Fields§
§name: ZomeName
§def: T
Implementations§
source§impl<T> Zome<T>
impl<T> Zome<T>
sourcepub fn new(name: ZomeName, def: T) -> Self
pub fn new(name: ZomeName, def: T) -> Self
Constructor
Examples found in repository?
src/zome.rs (line 95)
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
fn from(pair: (ZomeName, ZomeDef)) -> Self {
Self::new(pair.0, pair.1)
}
}
impl From<(ZomeName, IntegrityZomeDef)> for IntegrityZome {
fn from(pair: (ZomeName, IntegrityZomeDef)) -> Self {
Self::new(pair.0, pair.1)
}
}
impl From<(ZomeName, CoordinatorZomeDef)> for CoordinatorZome {
fn from(pair: (ZomeName, CoordinatorZomeDef)) -> Self {
Self::new(pair.0, pair.1)
}
More examples
src/dna_def.rs (line 241)
233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289
pub fn get_integrity_zome(
&self,
zome_name: &ZomeName,
) -> Result<zome::IntegrityZome, ZomeError> {
self.integrity_zomes
.iter()
.find(|(name, _)| name == zome_name)
.cloned()
.map(|(name, def)| IntegrityZome::new(name, def))
.ok_or_else(|| ZomeError::ZomeNotFound(format!("Zome '{}' not found", &zome_name,)))
}
/// Check if a zome is an integrity zome.
pub fn is_integrity_zome(&self, zome_name: &ZomeName) -> bool {
self.integrity_zomes
.iter()
.any(|(name, _)| name == zome_name)
}
/// Find a coordinator zome from a [`ZomeName`].
pub fn get_coordinator_zome(
&self,
zome_name: &ZomeName,
) -> Result<zome::CoordinatorZome, ZomeError> {
self.coordinator_zomes
.iter()
.find(|(name, _)| name == zome_name)
.cloned()
.map(|(name, def)| CoordinatorZome::new(name, def))
.ok_or_else(|| ZomeError::ZomeNotFound(format!("Zome '{}' not found", &zome_name,)))
}
/// Find a any zome from a [`ZomeName`].
pub fn get_zome(&self, zome_name: &ZomeName) -> Result<zome::Zome, ZomeError> {
self.integrity_zomes
.iter()
.find(|(name, _)| name == zome_name)
.cloned()
.map(|(name, def)| Zome::new(name, def.erase_type()))
.or_else(|| {
self.coordinator_zomes
.iter()
.find(|(name, _)| name == zome_name)
.cloned()
.map(|(name, def)| Zome::new(name, def.erase_type()))
})
.ok_or_else(|| ZomeError::ZomeNotFound(format!("Zome '{}' not found", &zome_name,)))
}
/// Get all the [`CoordinatorZome`]s for this dna
pub fn get_all_coordinators(&self) -> Vec<zome::CoordinatorZome> {
self.coordinator_zomes
.iter()
.cloned()
.map(|(name, def)| CoordinatorZome::new(name, def))
.collect()
}
pub fn zome_name_mut(&mut self) -> &mut ZomeName
sourcepub fn into_inner(self) -> (ZomeName, T)
pub fn into_inner(self) -> (ZomeName, T)
Split into components
Examples found in repository?
More examples
src/dna_def.rs (line 205)
201 202 203 204 205 206 207 208 209 210 211 212 213
pub fn unique_from_zomes(
integrity: Vec<IntegrityZome>,
coordinator: Vec<CoordinatorZome>,
) -> DnaDef {
let integrity = integrity.into_iter().map(|z| z.into_inner()).collect();
let coordinator = coordinator.into_iter().map(|z| z.into_inner()).collect();
DnaDefBuilder::default()
.integrity_zomes(integrity)
.coordinator_zomes(coordinator)
.random_network_seed()
.build()
.unwrap()
}
source§impl Zome<IntegrityZomeDef>
impl Zome<IntegrityZomeDef>
sourcepub fn erase_type(self) -> Zome
pub fn erase_type(self) -> Zome
Erase the type of Zome
because you no longer
need to know if this is an integrity or coordinator def.
source§impl Zome<CoordinatorZomeDef>
impl Zome<CoordinatorZomeDef>
sourcepub fn erase_type(self) -> Zome
pub fn erase_type(self) -> Zome
Erase the type of Zome
because you no longer
need to know if this is an integrity or coordinator def.
sourcepub fn set_dependency(&mut self, zome_name: impl Into<ZomeName>)
pub fn set_dependency(&mut self, zome_name: impl Into<ZomeName>)
Add a dependency to this zome.
Trait Implementations§
source§impl<'arbitrary, T: Arbitrary<'arbitrary>> Arbitrary<'arbitrary> for Zome<T>
impl<'arbitrary, T: Arbitrary<'arbitrary>> Arbitrary<'arbitrary> for Zome<T>
source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self
from the given unstructured data. Read moresource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Generate an arbitrary value of
Self
from the entirety of the given
unstructured data. Read moresource§impl<'de, T> Deserialize<'de> for Zome<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for Zome<T>where
T: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl From<Zome<CoordinatorZomeDef>> for CoordinatorZomeDef
impl From<Zome<CoordinatorZomeDef>> for CoordinatorZomeDef
source§fn from(zome: CoordinatorZome) -> Self
fn from(zome: CoordinatorZome) -> Self
Converts to this type from the input type.
source§impl From<Zome<IntegrityZomeDef>> for IntegrityZomeDef
impl From<Zome<IntegrityZomeDef>> for IntegrityZomeDef
source§fn from(zome: IntegrityZome) -> Self
fn from(zome: IntegrityZome) -> Self
Converts to this type from the input type.
source§impl<T: Ord> Ord for Zome<T>
impl<T: Ord> Ord for Zome<T>
source§impl<T: PartialEq> PartialEq<Zome<T>> for Zome<T>
impl<T: PartialEq> PartialEq<Zome<T>> for Zome<T>
source§impl<T: PartialOrd> PartialOrd<Zome<T>> for Zome<T>
impl<T: PartialOrd> PartialOrd<Zome<T>> for Zome<T>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl<T: Eq> Eq for Zome<T>
impl<T> StructuralEq for Zome<T>
impl<T> StructuralPartialEq for Zome<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Zome<T>where
T: RefUnwindSafe,
impl<T> Send for Zome<T>where
T: Send,
impl<T> Sync for Zome<T>where
T: Sync,
impl<T> Unpin for Zome<T>where
T: Unpin,
impl<T> UnwindSafe for Zome<T>where
T: UnwindSafe,
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
§impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
§fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.§impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref