Struct typedb_driver::concept::RelationType
source · pub struct RelationType {
pub label: String,
pub is_root: bool,
pub is_abstract: bool,
}Expand description
Relation types (or subtypes of the relation root type) represent relationships between types. Relation types have roles.
Other types can play roles in relations if it’s mentioned in their definition.
A relation type must specify at least one role.
Fields§
§label: String§is_root: bool§is_abstract: boolImplementations§
source§impl RelationType
impl RelationType
Trait Implementations§
source§impl Clone for RelationType
impl Clone for RelationType
source§fn clone(&self) -> RelationType
fn clone(&self) -> RelationType
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for RelationType
impl Debug for RelationType
source§impl PartialEq for RelationType
impl PartialEq for RelationType
source§fn eq(&self, other: &RelationType) -> bool
fn eq(&self, other: &RelationType) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl RelationTypeAPI for RelationType
impl RelationTypeAPI for RelationType
source§fn create<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result<Relation>>
fn create<'tx>( &self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result<Relation>>
Creates and returns an instance of this
RelationType. Read moresource§fn get_supertype<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result<Option<RelationType>>>
fn get_supertype<'tx>( &self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result<Option<RelationType>>>
Retrieves the most immediate supertype of the
RelationType. Read moresource§fn set_supertype<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
supertype: RelationType
) -> BoxPromise<'tx, Result>
fn set_supertype<'tx>( &mut self, transaction: &'tx Transaction<'_>, supertype: RelationType ) -> BoxPromise<'tx, Result>
source§fn get_supertypes<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> Result<BoxStream<'tx, Result<RelationType>>>
fn get_supertypes<'tx>( &self, transaction: &'tx Transaction<'_> ) -> Result<BoxStream<'tx, Result<RelationType>>>
Retrieves all supertypes of the
RelationType. Read moresource§fn get_subtypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity
) -> Result<BoxStream<'tx, Result<RelationType>>>
fn get_subtypes<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity ) -> Result<BoxStream<'tx, Result<RelationType>>>
Retrieves all direct and indirect (or direct only) subtypes of the
RelationType. Read moresource§fn get_instances<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity
) -> Result<BoxStream<'tx, Result<Relation>>>
fn get_instances<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity ) -> Result<BoxStream<'tx, Result<Relation>>>
Retrieves all direct and indirect (or direct only)
Relations that are instances
of this RelationType. Read moresource§fn get_relates<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity
) -> Result<BoxStream<'tx, Result<RoleType>>>
fn get_relates<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity ) -> Result<BoxStream<'tx, Result<RoleType>>>
Retrieves roles that this
RelationType relates to directly or via inheritance. Read moresource§fn get_relates_for_role_label<'tx>(
&self,
transaction: &'tx Transaction<'_>,
role_label: String
) -> BoxPromise<'tx, Result<Option<RoleType>>>
fn get_relates_for_role_label<'tx>( &self, transaction: &'tx Transaction<'_>, role_label: String ) -> BoxPromise<'tx, Result<Option<RoleType>>>
source§fn get_relates_overridden<'tx>(
&self,
transaction: &'tx Transaction<'_>,
overridden_role_label: String
) -> BoxPromise<'tx, Result<Option<RoleType>>>
fn get_relates_overridden<'tx>( &self, transaction: &'tx Transaction<'_>, overridden_role_label: String ) -> BoxPromise<'tx, Result<Option<RoleType>>>
source§fn set_relates<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
role_label: String,
overridden_role_label: Option<String>
) -> BoxPromise<'tx, Result>
fn set_relates<'tx>( &mut self, transaction: &'tx Transaction<'_>, role_label: String, overridden_role_label: Option<String> ) -> BoxPromise<'tx, Result>
Sets the new role that this
RelationType relates to. If we are setting an overriding
type this way, we have to also pass the overridden type as a second argument. Read moresource§fn unset_relates<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
role_label: String
) -> BoxPromise<'tx, Result>
fn unset_relates<'tx>( &mut self, transaction: &'tx Transaction<'_>, role_label: String ) -> BoxPromise<'tx, Result>
Disallows this
RelationType from relating to the given role. Read moresource§impl ThingTypeAPI for RelationType
impl ThingTypeAPI for RelationType
source§fn is_abstract(&self) -> bool
fn is_abstract(&self) -> bool
Checks if the type is prevented from having data instances (i.e.
abstract). Read morefn to_thing_type_cloned(&self) -> ThingType
source§fn is_deleted<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result<bool>>
fn is_deleted<'tx>( &self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result<bool>>
Checks if this type is deleted. Read more
source§fn delete<'tx>(
&mut self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result>
fn delete<'tx>( &mut self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result>
Deletes this type from the database. Read more
source§fn set_label<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
new_label: String
) -> BoxPromise<'tx, Result>
fn set_label<'tx>( &mut self, transaction: &'tx Transaction<'_>, new_label: String ) -> BoxPromise<'tx, Result>
Renames the label of the type. The new label must remain unique. Read more
source§fn set_abstract<'tx>(
&mut self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result>
fn set_abstract<'tx>( &mut self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result>
Set a type to be abstract, meaning it cannot have instances. Read more
source§fn unset_abstract<'tx>(
&mut self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result>
fn unset_abstract<'tx>( &mut self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result>
Set a type to be non-abstract, meaning it can have instances. Read more
source§fn get_owns<'tx>(
&self,
transaction: &'tx Transaction<'_>,
value_type: Option<ValueType>,
transitivity: Transitivity,
annotations: Vec<Annotation>
) -> Result<BoxStream<'tx, Result<AttributeType>>>
fn get_owns<'tx>( &self, transaction: &'tx Transaction<'_>, value_type: Option<ValueType>, transitivity: Transitivity, annotations: Vec<Annotation> ) -> Result<BoxStream<'tx, Result<AttributeType>>>
Retrieves
AttributeType that the instances of this ThingType are allowed to own
directly or via inheritance. Read moresource§fn get_owns_overridden<'tx>(
&self,
transaction: &'tx Transaction<'_>,
overridden_attribute_type: AttributeType
) -> BoxPromise<'tx, Result<Option<AttributeType>>>
fn get_owns_overridden<'tx>( &self, transaction: &'tx Transaction<'_>, overridden_attribute_type: AttributeType ) -> BoxPromise<'tx, Result<Option<AttributeType>>>
Retrieves an
AttributeType, ownership of which is overridden for this ThingType
by a given attribute_type. Read moresource§fn set_owns<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
attribute_type: AttributeType,
overridden_attribute_type: Option<AttributeType>,
annotations: Vec<Annotation>
) -> BoxPromise<'tx, Result>
fn set_owns<'tx>( &mut self, transaction: &'tx Transaction<'_>, attribute_type: AttributeType, overridden_attribute_type: Option<AttributeType>, annotations: Vec<Annotation> ) -> BoxPromise<'tx, Result>
source§fn unset_owns<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
attribute_type: AttributeType
) -> BoxPromise<'tx, Result>
fn unset_owns<'tx>( &mut self, transaction: &'tx Transaction<'_>, attribute_type: AttributeType ) -> BoxPromise<'tx, Result>
source§fn get_plays<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity
) -> Result<BoxStream<'tx, Result<RoleType>>>
fn get_plays<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity ) -> Result<BoxStream<'tx, Result<RoleType>>>
Retrieves all direct and inherited (or direct only) roles that are allowed to be played
by the instances of this
ThingType. Read moresource§fn get_plays_overridden<'tx>(
&self,
transaction: &'tx Transaction<'_>,
overridden_role_type: RoleType
) -> BoxPromise<'tx, Result<Option<RoleType>>>
fn get_plays_overridden<'tx>( &self, transaction: &'tx Transaction<'_>, overridden_role_type: RoleType ) -> BoxPromise<'tx, Result<Option<RoleType>>>
source§fn set_plays<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
role_type: RoleType,
overridden_role_type: Option<RoleType>
) -> BoxPromise<'tx, Result>
fn set_plays<'tx>( &mut self, transaction: &'tx Transaction<'_>, role_type: RoleType, overridden_role_type: Option<RoleType> ) -> BoxPromise<'tx, Result>
Allows the instances of this
ThingType to play the given role. Read moresource§fn unset_plays<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
role_type: RoleType
) -> BoxPromise<'tx, Result>
fn unset_plays<'tx>( &mut self, transaction: &'tx Transaction<'_>, role_type: RoleType ) -> BoxPromise<'tx, Result>
Disallows the instances of this
ThingType from playing the given role. Read moresource§fn get_syntax<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result<String>>
fn get_syntax<'tx>( &self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result<String>>
impl Eq for RelationType
impl StructuralEq for RelationType
impl StructuralPartialEq for RelationType
Auto Trait Implementations§
impl RefUnwindSafe for RelationType
impl Send for RelationType
impl Sync for RelationType
impl Unpin for RelationType
impl UnwindSafe for RelationType
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
Mutably borrows from an owned value. Read more
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
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request