Trait typedb_driver::transaction::concept::api::RelationTypeAPI
source · pub trait RelationTypeAPI: ThingTypeAPI + Clone + Into<RelationType> {
// Provided methods
fn create<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result<Relation>> { ... }
fn get_supertype<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result<Option<RelationType>>> { ... }
fn set_supertype<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
supertype: RelationType
) -> BoxPromise<'tx, Result> { ... }
fn get_supertypes<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> Result<BoxStream<'tx, Result<RelationType>>> { ... }
fn get_subtypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity
) -> Result<BoxStream<'tx, Result<RelationType>>> { ... }
fn get_instances<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity
) -> Result<BoxStream<'tx, Result<Relation>>> { ... }
fn get_relates<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity
) -> Result<BoxStream<'tx, Result<RoleType>>> { ... }
fn get_relates_for_role_label<'tx>(
&self,
transaction: &'tx Transaction<'_>,
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>>> { ... }
fn set_relates<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
role_label: String,
overridden_role_label: Option<String>
) -> BoxPromise<'tx, Result> { ... }
fn unset_relates<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
role_label: String
) -> BoxPromise<'tx, Result> { ... }
}Provided Methods§
sourcefn create<'tx>(
&self,
transaction: &'tx Transaction<'_>
) -> BoxPromise<'tx, Result<Relation>>
fn create<'tx>( &self, transaction: &'tx Transaction<'_> ) -> BoxPromise<'tx, Result<Relation>>
sourcefn 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>>>
sourcefn 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>
sourcefn 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>>>
sourcefn 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.
Arguments
transaction– The current transactiontransitivity–Transitivity::Transitivefor direct and indirect subtypes,Transitivity::Explicitfor direct subtypes only
Examples
relation_type.get_subtypes(transaction, Transitivity::Transitive);sourcefn 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.
Arguments
transaction– The current transactiontransitivity–Transitivity::Transitivefor direct and indirect instances,Transitivity::Explicitfor direct relates only
Examples
relation_type.get_instances(transaction, Transitivity::Explicit);sourcefn 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.
Arguments
transaction– The current transactiontransitivity–Transitivity::Transitivefor direct and inherited relates,Transitivity::Explicitfor direct relates only
Examples
relation_type.get_relates(transaction, Transitivity::Transitive);sourcefn 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>>>
sourcefn 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>>>
sourcefn 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.
Arguments
transaction– The current transactionrole_label– The new role for theRelationTypeto relate tooverridden_role_label– The label being overridden, if applicable
Examples
relation_type.set_relates(transaction, role_label, None).await;sourcefn 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>
Object Safety§
This trait is not object safe.