# Functionalities
This crate exposes functionalities for dealing with processes and modules loaded inside them in a streaming manner.
## Process Listing
This crate exposes a `for_each_process` function to deal sequentially with every process open in the operating system.
### Example
Printing every process to `stdout`
```Rust
use process_list::for_each_process;
fn print_processes(id : u32, name : &str) {
println!("Id: {} --- Name: {}", id, name);
}
for_each_process(print_processes).unwrap();
```
## Modules Listing
This crate exposes a `for_each_module` function to deal sequentially with every module loaded in a process.
### Example
Printing every module loaded in the current process to `stdout`
```Rust
use process_list::for_each_module;
use std::process;
fn print_stuff() {
env_logger::init();
for_each_module(process::id(), |(address, size), name| {
println!("{:016X} - {} \t {}", address, size, name.display())
})
.unwrap();
}
```
# Features
You can enable the `log` feature of this crate in order to get logging from it.
# Support
For now only Windows is supported, but it should be simple enough to port on other operating systems.
It's not a priority but pull requests are well accepted.