A Rust abstraction layer to interact with Malestrom, heavily inspired by the Go implementation.
- Implement a way to Extract the workloads to the message just like the Go lib does.
- Implement an Error type that implement the std::Error trait.
- Implement the Error codes enum.
- Come up with a Message type, with src, dst and a body as a serde::Value.
- Make Node sync/send and implement interior mutability so it can be passed as a parameter to the handler functions
- A way of answering based on a message (see go's node.Reply()). Test pending
- Make the MessageRouter Type be sync to I can use tokio::join! on two tokio::spawn handles instead of tokio::join! on both methods in Node.run().
- Revisit the CallbackRouter and see if we really need an Arc or if we can use a Box for the callbacks
- Revisit pub definitions for struct fields and methods to check if they really need to be public