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: bool
Implementations§
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§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)
Relation
s 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 StructuralPartialEq for RelationType
Auto Trait Implementations§
impl Freeze for RelationType
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.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
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>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§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