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>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.