Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Event Introspection #176

Closed
7 tasks done
TTWNO opened this issue Apr 17, 2024 · 0 comments
Closed
7 tasks done

Event Introspection #176

TTWNO opened this issue Apr 17, 2024 · 0 comments

Comments

@TTWNO
Copy link
Member

TTWNO commented Apr 17, 2024

Users of atspi should be able to find out:

  • The internal variant of an Event, or other container like ObjectEvent. Think something like EnumIndex
  • Some additional information about the internal variant, like its associated:
    • DBus member
    • DBus interface.
    • DBus body type
    • DBUs sender
    • DBus path

This is primarily for Odilia to route the Event type to an appropriate handler of the inner type. I essentially want enum_dispatch. Although I'm sure Arnold doesn't want to depend on that extra crate in particular.

TTWNO added a commit that referenced this issue Apr 18, 2024
1. BusProperties. This contains static information about the DBus properties of a particular event type. This is implemented for indivudal event types only and is NOT object safe; it is similar to GenericEvent, but without path() and sender() functions.
	- DBUS_MEMBER
	- DBUS_INTERFACE
	- MATCH_RULE_STRING
	- REGISTRY_EVENT_STRING
	- type Body
	- build() function
2. EventTypeProperties. This is an object-safe trait that specifies similar data as BusProperties, but as runtime functions instead of constants. This will be implemented on individual event types, and wrapper types like `Event`.
	- member() -> &'static str
	- interface() -> &'static str
	- match_rule() -> &'static str
	- registry_string() -> &'static str
	- EventProperties is blanket implemented for any type that implenents BusPropeties.
3. EventProperties. This is an object-safe trait specifying qualities of a particular event, not its type.
	- name() -> BusName<'_>
	- path() -> ObjectPath<'_>
	- object_ref() -> ObjectRef (auto-impl)

This fixes #176, addresses, at least in part #148.
TTWNO added a commit that referenced this issue Apr 18, 2024
1. BusProperties. This contains static information about the DBus properties of a particular event type. This is implemented for indivudal event types only and is NOT object safe; it is similar to GenericEvent, but without path() and sender() functions.
	- DBUS_MEMBER
	- DBUS_INTERFACE
	- MATCH_RULE_STRING
	- REGISTRY_EVENT_STRING
	- type Body
	- build() function
2. EventTypeProperties. This is an object-safe trait that specifies similar data as BusProperties, but as runtime functions instead of constants. This will be implemented on individual event types, and wrapper types like `Event`.
	- member() -> &'static str
	- interface() -> &'static str
	- match_rule() -> &'static str
	- registry_string() -> &'static str
	- EventProperties is blanket implemented for any type that implenents BusPropeties.
3. EventProperties. This is an object-safe trait specifying qualities of a particular event, not its type.
	- name() -> BusName<'_>
	- path() -> ObjectPath<'_>
	- object_ref() -> ObjectRef (auto-impl)

This fixes #176, addresses, at least in part #148.
@TTWNO TTWNO closed this as completed in 040c586 May 8, 2024
TTWNO added a commit that referenced this issue May 21, 2024
1. BusProperties. This contains static information about the DBus properties of a particular event type. This is implemented for indivudal event types only and is NOT object safe; it is similar to GenericEvent, but without path() and sender() functions.
	- DBUS_MEMBER
	- DBUS_INTERFACE
	- MATCH_RULE_STRING
	- REGISTRY_EVENT_STRING
	- type Body
	- build() function
2. EventTypeProperties. This is an object-safe trait that specifies similar data as BusProperties, but as runtime functions instead of constants. This will be implemented on individual event types, and wrapper types like `Event`.
	- member() -> &'static str
	- interface() -> &'static str
	- match_rule() -> &'static str
	- registry_string() -> &'static str
	- EventProperties is blanket implemented for any type that implenents BusPropeties.
3. EventProperties. This is an object-safe trait specifying qualities of a particular event, not its type.
	- name() -> BusName<'_>
	- path() -> ObjectPath<'_>
	- object_ref() -> ObjectRef (auto-impl)

This fixes #176, addresses, at least in part #148.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant