Crate thespis_impl

Crate thespis_impl 

Source
Expand description

§thespis_impl

standard-readme compliant Build Status Docs crates.io

The reference implementation of the thespis actor model

This crate implements the traits from the thespis crate. It provides what you need to use actors.

Please check out the guide level documentation.

§Table of Contents

§Install

With cargo add: cargo add thespis_impl

With cargo yaml:

dependencies:

  thespis_impl: ^0.3

In Cargo.toml:

[dependencies]

  thespis_impl = "0.3"

§Upgrade

Please check out the changelog when upgrading.

§Dependencies

This crate has few dependencies. Cargo will automatically handle it’s dependencies for you.

§Security

It is recommended to always use cargo-crev to verify the trustworthiness of each of your dependencies, including this one.

This crate has #![forbid(unsafe_code)], but our dependencies do use unsafe.

§Usage

Please check out the guide level documentation and the examples in the repository.

§API

API documentation can be found on docs.rs.

§Contributing

Please check out the contribution guidelines.

§Testing

cargo test --all-features.

§Code of conduct

Any of the behaviors described in point 4 “Unacceptable Behavior” of the Citizens Code of Conduct are not welcome here and might get you banned. If anyone, including maintainers and moderators of the project, fail to respect these/your limits, you are entitled to call them out.

§License

Unlicence

Structs§

ActorBuilder
Builder for Addr and Mailbox. This is a convenience API so you don’t have to call their constructors manually. Mainly lets you set the channel and name for your mailbox.
ActorInfo
Information about an actor, id, name and type_name. It implements Identify. Can also generate a span for tracing.
Addr
Reference implementation of thespis::Address<M>. It can be used to send all message types the actor implements thespis::Handler for.
Mailbox
The mailbox implementation.
WeakAddr
This is an address with similar functionality as Addr, but it does not keep the mailbox alive.

Enums§

MailboxEnd
Type returned to you by the mailbox when it ends. Await the JoinHandle returned by the executor to retrieve this.
ThesErr
Errors that can happen in thespis_impl.

Constants§

BOUNDED
Default buffer size for bounded channel between Addr and Mailbox.

Traits§

CloneSink
Interface for T: Sink + Clone + Unpin + Send. This is object safe, so you can clone on a boxed trait. In thespis_impl it is used for the channel sender that goes in the actor address.
CloneSinkExt
Helper trait to smoothen API for converting a T: CloneSink into ChanSender, which is Box< dyn CloneSink<'static, BoxEnvelope<A>, DynError> >.
SinkExt
An extension trait for Sinks that provides a variety of convenient combinator functions.

Functions§

dyn_err
Turn into a boxed error

Type Aliases§

BoxEnvelope
Shorthand for a Send boxed envelope.
ChanReceiver
Type of boxed channel receiver for Mailbox.
ChanSender
Type of boxed channel sender for Addr. Can be created conveniently with CloneSinkExt::dyned, but that is rarely needed as you can use the ActorBuilder to override default channels.
DynError
A boxed error type for the sink
ThesRes
Result which has a ThesErr as error type.