design-doc: add more state store info
parent
a0973dec85
commit
9c73947e21
|
@ -3,7 +3,7 @@
|
||||||
## Design and Layout
|
## Design and Layout
|
||||||
|
|
||||||
#### Async Client
|
#### Async Client
|
||||||
The highest level structure that ties the other pieces of functionality together. The client is responsible for the Request/Response cycle. It can be thought of as a thin layer atop the `BaseClient` passing requests along for the `BaseClient` to handle. A user should be able to write their own `AsyncClient` using the `BaseClient`. It knows how to
|
The highest level structure that ties the other pieces of functionality together. The client is responsible for the Request/Response cycle. It can be thought of as a thin layer atop the `BaseClient` passing requests along for the `BaseClient` to handle. A user should be able to write their own `AsyncClient` using the `BaseClient`. It knows how to
|
||||||
- login
|
- login
|
||||||
- send messages
|
- send messages
|
||||||
- encryption ...
|
- encryption ...
|
||||||
|
@ -92,6 +92,8 @@ The `BaseClient` also has access to a `dyn StateStore` this is an abstraction ar
|
||||||
- store/save
|
- store/save
|
||||||
- update ??
|
- update ??
|
||||||
|
|
||||||
|
The state store will restore our client state in the `BaseClient` and client authors can just get the latest state that they want to present from the client object. No need to ask the state store for it, this may change if custom setups request this. `StateStore`'s base is load/store and internally to the crate update the `BaseClient`.
|
||||||
|
|
||||||
#### Event Emitter
|
#### Event Emitter
|
||||||
The consumer of this crate can implement the `EventEmitter` trait for full control over how incoming events are handled by their client. If that isn't enough it is possible to receive every incoming response with the `AsyncClient::sync_forever` callback.
|
The consumer of this crate can implement the `EventEmitter` trait for full control over how incoming events are handled by their client. If that isn't enough it is possible to receive every incoming response with the `AsyncClient::sync_forever` callback.
|
||||||
- list the methods for `EventEmitter`?
|
- list the methods for `EventEmitter`?
|
||||||
|
|
Loading…
Reference in New Issue