pub trait RoleTypeAPI:
Clone
+ Into<RoleType>
+ Sync
+ Send {
// Required methods
fn is_abstract(&self) -> bool;
fn is_deleted<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<bool>>;
fn get_relation_type<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<Option<RelationType>>>;
// Provided methods
fn delete<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result> { ... }
fn set_label<'tx>(
&self,
transaction: &'tx Transaction<'_>,
new_label: String,
) -> BoxPromise<'tx, Result> { ... }
fn get_supertype<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<Option<RoleType>>> { ... }
fn get_supertypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> Result<BoxStream<'tx, Result<RoleType>>> { ... }
fn get_subtypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<RoleType>>> { ... }
fn get_relation_types<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> Result<BoxStream<'tx, Result<RelationType>>> { ... }
fn get_player_types<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<ThingType>>> { ... }
fn get_relation_instances<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<Relation>>> { ... }
fn get_player_instances<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<Thing>>> { ... }
}Required Methods§
Sourcefn is_abstract(&self) -> bool
fn is_abstract(&self) -> bool
Checks if the type is prevented from having data instances (i.e., abstract).
§Examples
role_type.is_abstract()Sourcefn is_deleted<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<bool>>
fn is_deleted<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<bool>>
Sourcefn get_relation_type<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<Option<RelationType>>>
fn get_relation_type<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<Option<RelationType>>>
Provided Methods§
Sourcefn delete<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result>
fn delete<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result>
Sourcefn set_label<'tx>(
&self,
transaction: &'tx Transaction<'_>,
new_label: String,
) -> BoxPromise<'tx, Result>
fn set_label<'tx>( &self, transaction: &'tx Transaction<'_>, new_label: String, ) -> BoxPromise<'tx, Result>
Sourcefn get_supertype<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<Option<RoleType>>>
fn get_supertype<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<Option<RoleType>>>
Sourcefn get_supertypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> Result<BoxStream<'tx, Result<RoleType>>>
fn get_supertypes<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> Result<BoxStream<'tx, Result<RoleType>>>
Sourcefn get_subtypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<RoleType>>>
fn get_subtypes<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity, ) -> Result<BoxStream<'tx, Result<RoleType>>>
Retrieves all direct and indirect (or direct only) subtypes of the RoleType.
§Arguments
transaction– The current transactiontransitivity–Transitivity::Transitivefor direct and indirect subtypes,Transitivity::Explicitfor direct subtypes only
§Examples
role_type.get_subtypes(transaction, transitivity)Sourcefn get_relation_types<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> Result<BoxStream<'tx, Result<RelationType>>>
fn get_relation_types<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> Result<BoxStream<'tx, Result<RelationType>>>
Sourcefn get_player_types<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<ThingType>>>
fn get_player_types<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity, ) -> Result<BoxStream<'tx, Result<ThingType>>>
Sourcefn get_relation_instances<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<Relation>>>
fn get_relation_instances<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity, ) -> Result<BoxStream<'tx, Result<Relation>>>
Retrieves the Relation instances that this role is related to.
§Arguments
transaction– The current transactiontransitivity–Transitivity::Transitivefor direct and indirect relation,Transitivity::Explicitfor direct relation only
§Examples
role_type.get_relation_instances(transaction, transitivity)Sourcefn get_player_instances<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<Thing>>>
fn get_player_instances<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity, ) -> Result<BoxStream<'tx, Result<Thing>>>
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.