typedb_driver::concept

Struct AttributeType

Source
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

Source

pub fn root() -> Self

Returns the root AttributeType

Trait Implementations§

Source§

impl AttributeTypeAPI for AttributeType

Source§

fn value_type(&self) -> ValueType

Retrieves the ValueType of this AttributeType. Read more
Source§

fn put<'tx>( &self, transaction: &'tx Transaction<'_>, value: Value, ) -> BoxPromise<'tx, Result<Attribute>>

Adds and returns an Attribute of this AttributeType with the given value. Read more
Source§

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

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

Retrieves the most immediate supertype of this AttributeType. Read more
Source§

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

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

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

Retrieves all supertypes of this AttributeType. Read more
Source§

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

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

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

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

Retrieves the regular expression that is defined for this AttributeType. Read more
Source§

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 Attributes of this type (inserted earlier or later) should match this regex. Read more
Source§

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

Removes the regular expression that is defined for this AttributeType. Read more
Source§

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 Annotations. Read more
Source§

impl Clone for AttributeType

Source§

fn clone(&self) -> AttributeType

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 AttributeType

Source§

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

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

impl PartialEq for AttributeType

Source§

fn eq(&self, other: &AttributeType) -> 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 ThingTypeAPI for AttributeType

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 StructuralPartialEq for AttributeType

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