Crate shkeleton[−][src]
Shkeleton is a skeleton Rust project which defines some default dependencies and contains some common API's. The idea behind Shkeleton is that you don't need to update all the dependencies by hand for every your library or binary, you could just update Shkeleton version and get all updates.
Dependencies
- log - logging facade
- byteorder - dealing with data reading/writing
- lazy_static - macro to define a lazy static constants
- array_tool - utilities for dealing with arrays
- itertools - utilities for dealing with iterators
- regex - regular expressions
- url - handling URLs
- derive_more & derive_deref - more derive implementations
- failure - error handling
Features
Shkeleton also defines a few features which extend the dependencies list and APIs.
CLI feature
Additional dependencies:
- clap - define your command line arguments parser
- fern - complex logger implementation
- glob - dealing with glob patterns
Concurrency feature
Additional dependencies:
- scoped-pool - define and use a thread pool
- num_cpus - get the number of CPUs and cores available
- parking_lot - faster syncronization primitives Concurrency feature also defines a facade for RwLock, which allowes to hide an implementation (std::sync::RwLock or parking_lot::RwLock) behind this facade and switch implementation without the need to update sources. It could be valuable because the parking_lot implementation lacks "lock poisoning" and maybe harder to debug deadlocks.
Limitations
Due to current Rust macro system limitations in order to use derive macros from the derive_deref or derive_more crates you need to import them manually:
#[macro_use] extern crate derive_more; #[macro_use] extern crate derive_deref;
Re-exports
pub extern crate lazy_static; |
pub extern crate log; |
pub extern crate failure; |
Modules
sync |
Macros
bail |
Exits a function early with an |
debug |
Logs a message at the debug level. |
ensure |
Exits a function early with an |
error |
Logs a message at the error level. |
format_err |
Constructs an |
info |
Logs a message at the info level. |
lazy_static | |
log |
The standard logging macro. |
log_enabled |
Determines if a message logged at the specified level in that module will be logged. |
trace |
Logs a message at the trace level. |
warn |
Logs a message at the warn level. |