pub struct AttributeType {
pub label: String,
pub is_root: bool,
pub is_abstract: bool,
pub value_type: ValueType,
}
Expand description
Attribute types represent properties that other types can own.
Attribute types have a value type. This value type is fixed and unique for every given instance of the attribute type.
Other types can own an attribute type. That means that instances of these other types can own an instance of this attribute type. This usually means that an object in our domain has a property with the matching value.
Multiple types can own the same attribute type, and different instances of the same type or different types can share ownership of the same attribute instance.
Fields§
§label: String
§is_root: bool
§is_abstract: bool
§value_type: ValueType
Implementations§
Source§impl AttributeType
impl AttributeType
Trait Implementations§
Source§impl AttributeTypeAPI for AttributeType
impl AttributeTypeAPI for AttributeType
Source§fn value_type(&self) -> ValueType
fn value_type(&self) -> ValueType
Source§fn put<'tx>(
&self,
transaction: &'tx Transaction<'_>,
value: Value,
) -> BoxPromise<'tx, Result<Attribute>>
fn put<'tx>( &self, transaction: &'tx Transaction<'_>, value: Value, ) -> BoxPromise<'tx, Result<Attribute>>
Source§fn get<'tx>(
&self,
transaction: &'tx Transaction<'_>,
value: Value,
) -> BoxPromise<'tx, Result<Option<Attribute>>>
fn get<'tx>( &self, transaction: &'tx Transaction<'_>, value: Value, ) -> BoxPromise<'tx, Result<Option<Attribute>>>
Retrieves an
Attribute
of this AttributeType
with the given value if such Attribute
exists. Otherwise, returns None
. Read moreSource§fn get_supertype<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<Option<AttributeType>>>
fn get_supertype<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<Option<AttributeType>>>
Retrieves the most immediate supertype of this
AttributeType
. Read moreSource§fn set_supertype<'tx>(
&mut self,
transaction: &'tx Transaction<'_>,
supertype: AttributeType,
) -> BoxPromise<'tx, Result>
fn set_supertype<'tx>( &mut self, transaction: &'tx Transaction<'_>, supertype: AttributeType, ) -> BoxPromise<'tx, Result>
Source§fn get_supertypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> Result<BoxStream<'tx, Result<AttributeType>>>
fn get_supertypes<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> Result<BoxStream<'tx, Result<AttributeType>>>
Retrieves all supertypes of this
AttributeType
. Read moreSource§fn get_subtypes<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<AttributeType>>>
fn get_subtypes<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity, ) -> Result<BoxStream<'tx, Result<AttributeType>>>
Retrieves all direct and indirect (or direct only) subtypes of this
AttributeType
. Read moreSource§fn get_subtypes_with_value_type<'tx>(
&self,
transaction: &'tx Transaction<'_>,
value_type: ValueType,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<AttributeType>>>
fn get_subtypes_with_value_type<'tx>( &self, transaction: &'tx Transaction<'_>, value_type: ValueType, transitivity: Transitivity, ) -> Result<BoxStream<'tx, Result<AttributeType>>>
Retrieves all direct and indirect (or direct only) subtypes of this
AttributeType
with given ValueType
. Read moreSource§fn get_instances<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
) -> Result<BoxStream<'tx, Result<Attribute>>>
fn get_instances<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity, ) -> Result<BoxStream<'tx, Result<Attribute>>>
Retrieves all direct and indirect (or direct only)
Attributes
that are instances
of this AttributeType
. Read moreSource§fn get_regex<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result<Option<String>>>
fn get_regex<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result<Option<String>>>
Retrieves the regular expression that is defined for this
AttributeType
. Read moreSource§fn set_regex<'tx>(
&self,
transaction: &'tx Transaction<'_>,
regex: String,
) -> BoxPromise<'tx, Result>
fn set_regex<'tx>( &self, transaction: &'tx Transaction<'_>, regex: String, ) -> BoxPromise<'tx, Result>
Sets a regular expression as a constraint for this
AttributeType
. Values
of all
Attribute
s of this type (inserted earlier or later) should match this regex. Read moreSource§fn unset_regex<'tx>(
&self,
transaction: &'tx Transaction<'_>,
) -> BoxPromise<'tx, Result>
fn unset_regex<'tx>( &self, transaction: &'tx Transaction<'_>, ) -> BoxPromise<'tx, Result>
Removes the regular expression that is defined for this
AttributeType
. Read moreSource§fn get_owners<'tx>(
&self,
transaction: &'tx Transaction<'_>,
transitivity: Transitivity,
annotations: Vec<Annotation>,
) -> Result<BoxStream<'tx, Result<ThingType>>>
fn get_owners<'tx>( &self, transaction: &'tx Transaction<'_>, transitivity: Transitivity, annotations: Vec<Annotation>, ) -> Result<BoxStream<'tx, Result<ThingType>>>
Retrieve all
Things
that own an attribute of this AttributeType
and have all given Annotation
s. Read moreSource§impl Clone for AttributeType
impl Clone for AttributeType
Source§fn clone(&self) -> AttributeType
fn clone(&self) -> AttributeType
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 AttributeType
impl Debug for AttributeType
Source§impl PartialEq for AttributeType
impl PartialEq for AttributeType
Source§impl ThingTypeAPI for AttributeType
impl ThingTypeAPI for AttributeType
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 StructuralPartialEq for AttributeType
Auto Trait Implementations§
impl Freeze for AttributeType
impl RefUnwindSafe for AttributeType
impl Send for AttributeType
impl Sync for AttributeType
impl Unpin for AttributeType
impl UnwindSafe for AttributeType
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<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