Struct DataObjectList

pub struct DataObjectList(/* private fields */);
Expand description

DataObjectList is the base class for list data object.

Implementations§

§

impl DataObjectList

pub fn item_count(&self) -> Result<usize, Error>

Returns count of items on the list.

pub fn acquire_item(&self, index: usize) -> Result<Weak<DataObject<()>>, Error>

Acquires an item on the list by index.

§Error

Returns an INDEX_OUT_OF_BOUNDS error if the index is out of bounds.

pub unsafe fn acquire_item_unchecked( &self, index: usize, ) -> Result<Weak<DataObject<()>>, Error>

Acquires an item on the list by index.

§Safety

The caller must ensure that index < self.item_count().

pub fn release_item(&self, index: usize) -> Result<(), Error>

Releases an item on the list by index.

§Error

Returns an INDEX_OUT_OF_BOUNDS error if the index is out of bounds.

pub unsafe fn release_item_unchecked(&self, index: usize) -> Result<(), Error>

Releases an item on the list by index.

§Safety

The caller must ensure that index < self.item_count().

pub fn get_item_template(&self) -> Result<DataObject<()>, Error>

Returns tree structure of the data source for individual list item. Only hierarchy and object types are valid, the data might not be.

Methods from Deref<Target = DataObject<()>>§

pub fn get_name(&self) -> Result<KanziString, Error>

Allows to retrieve the name of the object.

pub fn set_name(&self, value: impl AsRef<KanziStr>) -> Result<(), Error>

Sets the name of the object.

pub fn get_type(&self) -> Result<DataObjectType, Error>

Allows to retrieve the type of the object.

pub fn set_parent<E>(&self, parent: &DataObject<E>) -> Result<(), Error>

Assigns a parent DataObject to this DataObject.

pub fn get_parent(&self) -> Result<Option<Weak<DataObject<()>>>, Error>

Retrieves the parent DataObject of this DataObject.

§Returns

If None is returned DataObject doesn’t have a parent.

pub fn has_child<E>(&self, child: &DataObject<E>) -> Result<bool, Error>

Checks whether or not the child exists.

pub fn get_child_count(&self) -> Result<u64, Error>

Retrieves the count of child objects in this data object.

pub fn get_child(&self, index: u64) -> Result<Weak<DataObject<()>>, Error>

Retrieves a child object in given index.

§Errors

Returns an INDEX_OUT_OF_BOUNDS error if the index is out of bounds.

pub unsafe fn get_child_unchecked( &self, index: u64, ) -> Result<Weak<DataObject<()>>, Error>

Retrieves a child object in given index.

§Safety

The caller must ensure that index < self.get_child_count().

pub fn get_child_index<E>(&self, child: &DataObject<E>) -> Result<u64, Error>

Retrieves the index of a child data object.

§Errors

Returns an INVALID_ARGUMENT error if the provided DataObject is not a child of self.

pub unsafe fn get_child_index_unchecked<E>( &self, child: &DataObject<E>, ) -> Result<u64, Error>

Retrieves the index of a child data object.

§Safety

The caller must ensure that self.has_child(child).

pub fn find_child( &self, child_name: impl AsRef<KanziStr>, ) -> Result<Option<Weak<DataObject<()>>>, Error>

Tries to find a child with given name.

§Returns

If None is returned, there is no child with provided name.

pub fn add_child<E>(&self, child: &DataObject<E>) -> Result<(), Error>

Adds data object as child of this object. The child should not have a parent.

pub fn insert_child<E>( &self, index: u64, child: &DataObject<E>, ) -> Result<(), Error>

Inserts data object as child of this object, allows to specify index of the object.

§Errors

Returns an INDEX_OUT_OF_BOUNDS error if the index is out of bounds.

pub unsafe fn insert_child_unchecked<E>( &self, index: u64, child: &DataObject<E>, ) -> Result<(), Error>

Inserts data object as child of this object, allows to specify index of the object.

§Safety

The caller must ensure that index < self.get_child_count().

pub fn remove_child<E>(&self, child: &DataObject<E>) -> Result<(), Error>

Removes a child object from the list of children.

§Errors

Returns an INVALID_ARGUMENT error if the provided DataObject is not a child of self.

pub unsafe fn remove_child_unchecked<E>( &self, child: &DataObject<E>, ) -> Result<(), Error>

Removes a child object from the list of children.

§Safety

The caller must ensure that self.has_child(child).

pub fn remove_child_at_index(&self, index: u64) -> Result<(), Error>

Removes a child object in given index.

§Errors

Returns an INDEX_OUT_OF_BOUNDS error if the index is out of bounds.

pub unsafe fn remove_child_at_index_unchecked( &self, index: u64, ) -> Result<(), Error>

Removes a child object in given index.

§Safety

The caller must ensure that index < self.get_child_count().

pub fn remove_all_children(&self) -> Result<(), Error>

Removes all child nodes.

pub fn get_children_iterator(&self) -> Result<ChildrenIterator, Error>

Gets an iterator over DataObject children.

pub fn get_children(&self) -> Result<Vec<Weak<DataObject<()>>>, Error>

Gets a list of DataObject children.

pub fn set_value( &self, value: <T as DataObjectConstraint>::DataArg<'_>, ) -> Result<(), Error>

Sets the value of this data object.

pub fn get_value(&self) -> Result<T, Error>

Retrieves the value that is represented by this data object.

pub fn as_abstract(&self) -> &DataObject<()>

Casts DataObject reference to its abstract representation.

Methods from Deref<Target = DataContext>§

pub fn get_data_context(&self) -> Result<Option<Weak<Resource>>, Error>

pub fn set_data_context(&self, value: Option<&Resource>) -> Result<(), Error>

pub fn get_items_source(&self) -> Result<Option<Weak<Resource>>, Error>

pub fn set_items_source(&self, value: Option<&Resource>) -> Result<(), Error>

pub fn add_modified_notification_handler( &self, callback: impl Handle, ) -> Result<ModifiedSubscriptionToken, Error>

Allows to subscribe to modifications in this data context.

§Arguments
  • callback - Callback that is invoked when a change occurs in this data context.
§Returns

Token that can be used to identify and remove given subscription.

pub fn remove_modified_notification_handler( &self, token: &ModifiedSubscriptionToken, ) -> Result<(), Error>

Allows to unsubscribe from modifications in this data context.

§Arguments
  • token - Token to identify the subscription that should be removed.

pub fn notify_modified(&self) -> Result<(), Error>

Triggers modification procedure in this data context, which invokes the subscriptions. Should be called by derived classes whenever the value of the object is changed.

pub fn get_data(&self) -> Result<Option<Weak<DataObject<()>>>, Error>

Retrieves the root object of the underlying data tree. Needs to be implemented by the derived class.

§Returns

Returns data object that is the root of the data tree.

pub fn lookup_data_context( &self, relative_path: impl AsRef<KanziStr>, ) -> Result<Option<Weak<DataContext>>, Error>

Performs object look-up by path.

§Arguments
  • relative_path - Path of the object where to look at, separated by ‘.’.
§Returns

Data object that was found, or empty pointer if there was no such object.

Methods from Deref<Target = Resource>§

pub fn get_name(&self) -> Result<KanziString, Error>

Gets the resource name.

pub fn get_url(&self) -> Result<KanziString, Error>

Gets the resource URL. Note that the URL is not necessarily in URL form if resource has been just created.

§Returns

URL string.

pub fn set_keep_alive(&self, keep_alive: bool) -> Result<(), Error>

Sets the keep alive flag. Can be set only before the resource is registered to the resource manager. Normally set by loadFromKZB.

§Arguments
  • keep_alive - Value for the keep alive flag.

Methods from Deref<Target = Object>§

pub fn as_ptr(&self) -> *mut ObjectWrapper

pub fn as_wrapper(&self) -> &ObjectWrapper

pub fn as_object(&self) -> &Object

Represents any type inheriting from Object as &Object. This is useful for comparisions when PartialEq traits failed to compare objects of different types.

let child = screen.get_child(0)?;
let parent = child.get_parent()?.into_error(ErrorKind::ObjectNotFound)?;
// assert_eq!(screen, parent); // <- Fails to compile!
assert_eq!(screen.as_object(), parent.as_object());

pub fn get_native(&self) -> Result<NonNull<c_void>, Error>

Gets a pointer to the backing C++ instance.

pub fn is_stale(&self) -> bool

Checks whether the weak reference has expired.

pub fn get_property<T>( &self, property_type: &PropertyType<T>, ) -> Result<<T as VariantConstraint>::RetArg, Error>

Returns the current value of a property disregarding modifiers.

Base value is affected by the following inputs where the highest entry in the list determines the base value:

  1. Local value set with setProperty or loaded from kzb
  2. Value set by a style affecting the property.
  3. Value defined by class metadata.

Modifiers are not applied, the highest-priority base value is returned.

If no inputs to the property value can be established the system returns the value default value from property type metadata.

§Arguments
  • property_type - The property type identifying the property to retrieve.
§Returns

The evaluated property value.

pub fn get_optional_property<T>( &self, property_type: &PropertyType<T>, ) -> Result<Option<<T as VariantConstraint>::RetArg>, Error>

Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value.

If there is no value sources, None is returned.

If no inputs to the property value can be established the system returns the value default value from property type metadata.

§Arguments
  • property_type - The property type identifying the property to retrieve.
§Returns

The evaluated property value.

pub fn set_property<T>( &self, property_type: &PropertyType<T>, value: <T as VariantConstraint>::DataArg<'_>, ) -> Result<(), Error>

Sets the local value of a property type.

pub fn has_value<T>( &self, property_type: &PropertyType<T>, ) -> Result<bool, Error>

Evaluates whether there are any inputs into the property value. Both value sources and modifiers are taken into account.

§Returns

Returns true if there are inputs into the property value, false otherwise.

pub fn remove_local_value<T>( &self, property_type: &PropertyType<T>, ) -> Result<(), Error>

Removes the local value associated with the property.

pub fn get_metaclass(&self) -> Result<Metaclass, Error>

Returns the metaclass of the dynamic type of the object.

pub fn get_domain(&self) -> Result<Domain, Error>

Returns the domain the object belongs to.

pub fn set_flag_keep_during_patching<T>( &self, property_type: &PropertyType<T>, ) -> Result<(), Error>

Sets the flag to indicate that the property was loaded from KZB.

pub fn debug_string(&self) -> Result<String, Error>

Builds a string representation of the object intended for debugging purposes.

Trait Implementations§

§

impl Clone for DataObjectList

§

fn clone(&self) -> DataObjectList

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for DataObjectList

§

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

Formats the value using the given formatter. Read more
§

impl Deref for DataObjectList

§

type Target = DataObject<()>

The resulting type after dereferencing.
§

fn deref(&self) -> &<DataObjectList as Deref>::Target

Dereferences the value.
§

impl Display for DataObjectList

§

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

Formats the value using the given formatter. Read more
§

impl Inheritable for DataObjectList

§

unsafe fn downcast_unchecked<T>(self) -> T
where T: Inherits<Self>,

Downcast the object to a more specific type. Read more
§

unsafe fn downcast_unchecked_ref<T>(&self) -> &T
where T: Inherits<Self>,

Downcast the object reference to a more specific type. Read more
§

impl Inherits<DataContext> for DataObjectList

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

§

impl Inherits<DataObject<()>> for DataObjectList

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

§

impl Inherits<Object> for DataObjectList

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

§

impl Inherits<Resource> for DataObjectList

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

§

impl MetaclassConstraint for DataObjectList

§

fn get_static_metaclass() -> &'static Metaclass

Gets metaclass associated with a given type.
§

impl ObjectConstraint for DataObjectList

§

fn downcast<T>(self) -> Result<Option<T>, Error>
where T: MetaInherits<Self>,

Casts metaclass to a more specific type by value.
§

fn downcast_ref<T>(&self) -> Result<Option<&T>, Error>
where T: MetaInherits<Self>,

Casts metaclass to a more specific type by reference.
§

fn is_a<T>(&self) -> Result<bool, Error>
where T: MetaInherits<Self>,

Determines whether the class this metaclass describes derives from a class described by specified metaclass.
§

fn downgrade(self) -> Weak<Self>

§

fn downgrade_ref(&self) -> Weak<Self>

§

fn lock(self) -> ThreadObject<Self>

§

fn lock_ref(&self) -> ThreadObject<Self>

§

impl<T> PartialEq<T> for DataObjectList

§

fn eq(&self, rhs: &T) -> 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.
§

impl<T> PartialEq<Weak<T>> for DataObjectList

§

fn eq(&self, rhs: &Weak<T>) -> 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.
§

impl Eq for DataObjectList

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
§

impl<T> AsAny for T
where T: 'static,

§

fn as_any(&self) -> &(dyn Any + 'static)

§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Inherits<T> for T

§

fn upcast(self) -> Base

§

fn upcast_ref(&self) -> &Base

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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.
§

impl<Base, T> MetaInherits<Base> for T
where Base: ObjectConstraint, T: Inherits<Base> + ObjectConstraint,