|
|
@ -25,22 +25,25 @@ cargo run |
|
|
|
|
|
|
|
|
|
|
|
## Development |
|
|
|
## Development |
|
|
|
|
|
|
|
|
|
|
|
This guide in process |
|
|
|
Guide and protocol draft |
|
|
|
|
|
|
|
|
|
|
|
### Modules |
|
|
|
### `browser` |
|
|
|
|
|
|
|
|
|
|
|
#### `browser` |
|
|
|
#### Filesystem |
|
|
|
|
|
|
|
|
|
|
|
* Use [modern path pattern](https://doc.rust-lang.org/edition-guide/rust-2018/path-changes.html#no-more-modrs) |
|
|
|
* Use [modern path pattern](https://doc.rust-lang.org/edition-guide/rust-2018/path-changes.html#no-more-modrs) |
|
|
|
* One module implements one GTK widget, it may include additional helper files in same location (like template, CSS or DB API) |
|
|
|
* One module implements one GTK widget, it may include additional helper files in same location (like template, CSS or DB API) |
|
|
|
* For children widget - create children module, located according to hierarchy |
|
|
|
* For children widget - create children module, located according to hierarchy |
|
|
|
* The codebase of module must be as minimal as possible, separate to sub-modules: |
|
|
|
|
|
|
|
|
|
|
|
#### Codebase |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* The codebase must be as minimal as possible, separate: |
|
|
|
* different tasks |
|
|
|
* different tasks |
|
|
|
* massive structures |
|
|
|
* massive structures |
|
|
|
* structures with implementation |
|
|
|
* structures with implementation |
|
|
|
* Every module must: |
|
|
|
* Every module must: |
|
|
|
* encapsulate: compose childs and stay composable for parents |
|
|
|
* encapsulate it members: compose childs and stay composable for parents |
|
|
|
* access 1 level of child API, never parents (e.g. through `super`) |
|
|
|
* access 1 level of childs, never parents (e.g. through `super`) |
|
|
|
* implement only one `struct` (same as one file for one class) |
|
|
|
* implement only one `struct` (same as one file for one class) |
|
|
|
* implementable `struct` is public, where members - private |
|
|
|
* implementable `struct` is public, where members - private |
|
|
|
* contain main `struct` implementation: |
|
|
|
* contain main `struct` implementation: |
|
|
|