Create a library/UI module separation
This commit is contained in:
18
HACKING.md
18
HACKING.md
@ -57,6 +57,24 @@ $ gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb',
|
|||||||
Coding
|
Coding
|
||||||
------
|
------
|
||||||
|
|
||||||
|
### Project structure
|
||||||
|
|
||||||
|
Rust modules should be split into 2 categories: libraries, and user interface. They differ in the way they do error handling.
|
||||||
|
|
||||||
|
Libraries should:
|
||||||
|
|
||||||
|
- not panic due to external surprises, only due to internal inconsistencies
|
||||||
|
- pass errors and surprises they can't handle to the callers instead
|
||||||
|
- not silence errors and surprises
|
||||||
|
|
||||||
|
User interface modules should:
|
||||||
|
|
||||||
|
- try to provide safe values whenever they encounter an error
|
||||||
|
- do the logging
|
||||||
|
- give libraries the ability to report errors and surprises (e.g. via giving them loggers)
|
||||||
|
|
||||||
|
### Style
|
||||||
|
|
||||||
Code submitted should roughly match the style of surrounding code. Things that will *not* be accepted are ones that often lead to errors:
|
Code submitted should roughly match the style of surrounding code. Things that will *not* be accepted are ones that often lead to errors:
|
||||||
|
|
||||||
- skipping brackets `{}` after every `if()`, `else`, and similar
|
- skipping brackets `{}` after every `if()`, `else`, and similar
|
||||||
|
|||||||
Reference in New Issue
Block a user