# Modules overview
## Source files
* [`main.rs`](./main.rs)
* exposes the simple CLI
* [`cli.rs`](./cli.rs)
* CLI functions to allow testing pconvert binary
* [`lib.rs`](./lib.rs)
* exports blending functions to be used by other Rust crates
* conditionally imports submodules depending on target environment (e.g. WASM does not make use of the submodule `pymodule`)
* [`benchmark.rs`](./benchmark.rs)
* benchmark struct and associated functions
* [`errors.rs`](./errors.rs)
* pconvert errors definition
* some external errors to pconvert errors conversion
* [`parallelism.rs`](./parallelism.rs)
* thread pool definition
* worker threads definition
* thread pool status definition
* [`utils.rs`](./utils.rs)
* decode/encode PNG functions
* read/write from file system PNG functions
* external crate type conversions
* other utility functions
## Submodules
* [`blending`](./blending/)
* blending algorithms
* [`pymodule`](./pymodule/)
* exposure of pconvert's API as a python module
* [`wasm`](./wasm/)
* exposure of pconvert's API as a Web Assembly (WASM) module