Release 0.1.0
Bug Fixes:
- Manually implement clone for actor wrappers
Features:
- Drop assumption that events can be encoded
- Basic support for swappable executors
- JoinHandle abstractions
- Immutable references and sync api
- SyncActor
- Add executor to Actor trait signature
- Provide ActorExt::stream
- Add sync version of call and stream
- Add new type macros for Actors
- Add prelude
- Wrapped_event!() macro
- Waiter/Trigger
- Shutdown and Catchup
- Add async_trait and enum_dispatch to prelude
- Adaptor utility type
- Make macros take care of completion token
- Remove directional event
- Remove collector
Refactor:
- Use owned context for AsyncActor
- Remove priority system
test: Make wrapped_channels test less flaky
doc: Improve documentation comments
test: Make sync_actor tests less flaky
feat!: Remove collector
BREAKING CHANGE: Remove unneeded Collector type
feat!: Remove directional event
BREAKING CHANGE: Remove directional event type
feat: Make macros take care of completion token
feat: Adaptor utility type
Add a utility type that wraps an `EventConsumer`, allowing it to consume
another type via a conversion closure.
refactor!: Remove priority system
BREAKING CHANGE: Priority methods have been removed from the Event and
EventProducer traits.
doc: Point to actm project on sourcehut
doc: grading-tests example
fix: Manually implement clone for actor wrappers
This avoids having the compiler require the executor to be clone
feat: Add async_trait and enum_dispatch to prelude
build: Feature gate async-std executor
feat: Shutdown and Catchup
Add methods to the actor trait to shutdown the actor and to force
processing of all currently in flight messages.
feat: Waiter/Trigger
Add Waiter and Trigger utility types, for signaling event completion,
possibly across a sync/async boundary.
feat: wrapped_event!() macro
Add the wrapped_event macro, which automatically implements an `Event`
implementing type-saftey wrapper around an arbitrary type.
feat: Add new type macros for Actors
Add the async_actor and sync_actor macros to automatically create
type-saftey wrappers around AsyncActor and SyncActor, respectively,
given the name of the desired type, the input and output event types,
the context type, and the event handling method.
refactor!: Use owned context for AsyncActor
Make AsyncActor use a logic closure that takes in an owned context and
passes it back out, this is more complicated to program, but saves
dealing with lifetime hell