typedb_driver::concept

Struct 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: bool

Implementations§

Source§

impl RelationType

Source

pub fn root() -> Self

Returns the root RelationType

Trait Implementations§

Source§

impl Clone for RelationType

Source§

fn clone(&self) -> RelationType

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RelationType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for RelationType

Source§

fn eq(&self, other: &RelationType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RelationTypeAPI for RelationType

Source§

fn create<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<Relation>>

Creates and returns an instance of this RelationType. Read more
Source§

fn get_supertype<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<Option<RelationType>>>

Retrieves the most immediate supertype of the RelationType. Read more
Source§

fn set_supertype<'tx>( &mut self, transaction: &'tx Transaction<'_>, supertype: RelationType, ) -> BoxPromise<'tx, Result>

Sets the supplied RelationType as the supertype of the current RelationType. Read more
Source§

fn get_supertypes<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> Result<BoxStream<'tx, Result<RelationType>>>

Retrieves all supertypes of the RelationType. Read more
Source§

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 more
Source§

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 more
Source§

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 more
Source§

fn get_relates_for_role_label<'tx>( &self, transaction: &'tx Transaction<'_>, role_label: String, ) -> BoxPromise<'tx, Result<Option<RoleType>>>

Retrieves role with a given role_label that this RelationType relates to. Read more
Source§

fn get_relates_overridden<'tx>( &self, transaction: &'tx Transaction<'_>, overridden_role_label: String, ) -> BoxPromise<'tx, Result<Option<RoleType>>>

Retrieves a RoleType that is overridden by the role with the overridden_role_label. Read more
Source§

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 more
Source§

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 more
Source§

impl ThingTypeAPI for RelationType

Source§

fn label(&self) -> &str

Retrieves the unique label of the type. Read more
Source§

fn is_abstract(&self) -> bool

Checks if the type is prevented from having data instances (i.e. abstract). Read more
Source§

fn is_root(&self) -> bool

Checks if the type is a root type. Read more
Source§

fn to_thing_type_cloned(&self) -> ThingType

Source§

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>

Deletes this type from the database. Read more
Source§

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>

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>

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>>>

Retrieves AttributeType that the instances of this ThingType are allowed to own directly or via inheritance. Read more
Source§

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 more
Source§

fn set_owns<'tx>( &mut self, transaction: &'tx Transaction<'_>, attribute_type: AttributeType, overridden_attribute_type: Option<AttributeType>, annotations: Vec<Annotation>, ) -> BoxPromise<'tx, Result>

Allows the instances of this ThingType to own the given AttributeType. Read more
Source§

fn unset_owns<'tx>( &mut self, transaction: &'tx Transaction<'_>, attribute_type: AttributeType, ) -> BoxPromise<'tx, Result>

Disallows the instances of this ThingType from owning the given AttributeType. Read more
Source§

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 more
Source§

fn get_plays_overridden<'tx>( &self, transaction: &'tx Transaction<'_>, overridden_role_type: RoleType, ) -> BoxPromise<'tx, Result<Option<RoleType>>>

Retrieves a RoleType that is overridden by the given role_type for this ThingType. Read more
Source§

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 more
Source§

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 more
Source§

fn get_syntax<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<String>>

Produces a pattern for creating this ThingType in a define query. Read more
Source§

impl Eq for RelationType

Source§

impl StructuralPartialEq for RelationType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

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
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize = _

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more