fenestroj

Crates.iofenestroj
lib.rsfenestroj
version0.0.11
sourcesrc
created_at2019-07-17 07:25:15.205201
updated_at2020-02-22 03:25:22.877333
descriptionEasier wrappers for Win32 API stuff, safe when possible
homepage
repositoryhttps://github.com/Lokathor/fenestroj
max_upload_size
id149607
size95,628
Lokathor (Lokathor)

documentation

README

License:Zlib Minimum Rust Version travis.ci AppVeyor crates.io docs.rs

fenestroj

Easier to use wrappers for winapi stuff.

All wrappers are kept in feature gated modules the same as how winapi works.

Conventions

  • Names:
    • Snake case function names: GetLastError becomes get_last_error
    • If there's an A and W variant of a winapi function, the W variant is used without "_w" on the end: GetMessageW becomes get_message
    • Some functions are new utilities to this crate, they just have names that don't conflict with any winapi name.
  • Arguments:
    • Enums are used when possible.
    • If there's some "obvious" default for the user to calculate then Option is sometimes used and it will do the calculation for you.
    • Functions with a large number of arguments are converted to take a single struct with a field for each argument so you don't have to remember the ordering perfectly.
  • Return Values:
    • Usage of bool, Option, or Result is done whenever possible.
    • Numeric codes are given newtype wrappers as often as possible: u32 error values become wrapped in pub struct ErrorCode(pub u32) for example.
  • Safety:
    • Things are all still left as unsafe until a careful investigation of the safety involved can be done.
    • The investigation process is generally "ask WinBun and hope they're not too busy to answer".
Commit count: 0

cargo fmt