Stevan Freeborn f5d98197ac refactor: modularize architecture
refactors the application structure to move away from a monolithic
`main.rs`.

- **Domain Models**: Extracted `State`, `Message`, `FileAction`, and
`ViewAction` into `state.rs` and `message.rs`. Enforced encapsulation on
`State` using private fields and public accessors.
- **Controller Layer**: Created `handler.rs` to handle business logic
and I/O operations, transforming the main `update` loop into a pure
event router.
- **Component System**: Split the UI into composable, stateless
functions in `components/` (tabs, editor, status_bar, action_bar),
removing the 100+ line view function.
- **File Logic**: Encapsulated file operations and safe path handling
within `file.rs`, removing fragile `expect` calls from the UI layer.
- **Utilities**: Centralized static configuration, keybindings, and I/O
helpers into `constants.rs`, `key_bindings.rs`, and `io.rs`.

This change decouples the view from the model and makes the core
application logic testable
2026-01-24 20:51:26 -06:00
2026-01-24 20:51:26 -06:00
2026-01-07 18:22:27 -06:00
2026-01-09 07:53:44 -06:00

logo

Zoeae

⚠️ Under Construction ⚠️

This is a desktop application that I am building to learn about desktop development and the Rust programming language. My goal is to hopefully end up with something that can replace Notepad, but includes the ability to preview markdown.

S
Description
No description provided
Readme
1.8 MiB
Languages
Rust 100%