mod.rs 518 B

1234567891011121314151617181920212223242526272829
  1. use parking_lot::Mutex;
  2. struct State {
  3. bytes: bytes::Bytes,
  4. }
  5. pub struct Persister {
  6. state: Mutex<State>,
  7. }
  8. impl Persister {
  9. pub fn new() -> Self {
  10. Self {
  11. state: Mutex::new(State {
  12. bytes: bytes::Bytes::new(),
  13. }),
  14. }
  15. }
  16. }
  17. impl ruaft::Persister for Persister {
  18. fn read_state(&self) -> bytes::Bytes {
  19. self.state.lock().bytes.clone()
  20. }
  21. fn save_state(&self, data: bytes::Bytes) {
  22. self.state.lock().bytes = data;
  23. }
  24. }