[modx](https://github.com/tkr-sh/modx) is an experimental way to handle states with structs in [Dioxus](https://dioxuslabs.com/) inspired by [mobx](https://mobx.js.org/README.html).
## Example
```rs
#[modx::store]
struct CounterStore {
count: i64,
}
impl CounterStore {
fn inc(&mut self) {
self.count += 1;
}
fn dec(&mut self) {
self.count -= 1;
}
}
fn app() -> Element {
let mut store = CounterStore::new();
rsx! {
button { onclick: move |_| store.inc(), "+1" }
button { onclick: move |_| store.dec(), "-1" }
"{store.count}"
}
}
```
## Documentation
Documentation can be found at https://docs.rs/modx
## More examples
There are some examples at `~/examples` so you can see how to use `modx` and how it behaves.
You can run an example with:
```sh
cargo run --example this_example
```
with `this_example` being the name of the file (without the extension)
## Development progress
In the near future, most of the hooks should be rewrote to work with modx.
Here is the current status:
- [X] Signals
- [X] Props
- [X] Resources
- [ ] Memo
- [ ] Server future