Module runa_core::objects

source ·
Expand description

Interfaces for wayland objects

This module defines common interfaces for wayland objects. MonoObject describes a object with a concrete type, whereas AnyObject describes a type erased object, akin to dyn Any.

Note these interfaces really only represents part of what a wayland object does. These objects would also implement one of the RequestDispatch traits generated from the wayland protocol specification, which will be used by the Object trait to handle wayland requests.

Normally, you wouldn’t implement traits defined here by hand, but instead use the #[derive(Object)] or the #[wayland_object] attribute to generate the impls for you.

Reference implementations of the core wayland objects: wl_display, wl_registry, and wl_callback are also provided here.

Re-exports

  • pub use runa_macros::Object;

Structs

  • Default wl_callback implementation
  • Default wl_display implementation
  • Default wl_registry implementation

Constants

Traits

  • A polymorphic object, i.e. it’s an union of multiple objects types.
  • An monomorphic object, i.e. it’s a single object whose interface is known, as opposed to AnyObject.
  • A wayland object.

Attribute Macros

  • Generate Object impls for types that implement RequestDispatch for a certain interface. Should be attached to RequestDispatch impls.