//! # kxio //! //! `kxio` is a Rust library that provides injectable `FileSystem` and `Network` //! resources to enhance the testability of your code. By abstracting system-level //! interactions, `kxio` enables easier mocking and testing of code that relies on //! file system and network operations. //! //! ## Features //! //! - Filesystem Abstraction //! - Network Abstraction //! - Enhanced Testability //! //! ## Filesystem //! //! The Filesystem module offers a clean abstraction over `std::fs`, the standard //! file system operations. For comprehensive documentation and usage examples, //! please refer to . //! //! ### Key Filesystem Features: //! //! - File reading and writing //! - Directory operations //! - File metadata access //! - Fluent API for operations like `.reader().bytes()` //! //! ## Network //! //! The Network module offers a testable interface over the `reqwest` crate. For //! comprehensive documentation and usage examples, please refer to //! //! //! ## Getting Started //! //! Add `kxio` to your `Cargo.toml`: //! //! ```toml //! [dependencies] //! kxio = "x.y.z" //! ``` //! //! ## Usage //! //! See the example [get.rs](https://git.kemitix.net/kemitix/kxio/src/branch/main/examples/get.rs) for an annotated example on how to use the `kxio` library. //! It covers both the `net` and `fs` modules. //! //! ## Development //! //! - The project uses [Cargo Mutants](https://crates.io/crates/cargo-mutants) for mutation testing. //! - [ForgeJo Actions](https://forgejo.org/docs/next/user/actions/) are used for continuous testing and linting. //! //! ## Contributing //! //! Contributions are welcome! Please check our [issue tracker](https://git.kemitix.net/kemitix/kxio/issues) for open tasks or //! submit your own ideas. //! //! ## License //! //! This project is licensed under the terms specified in the `LICENSE` file in the //! repository root. //! //! --- //! //! For more information, bug reports, or feature requests, please visit our [repository](https://git.kemitix.net/kemitix/kxio). pub mod fs; pub mod net; mod result; pub use result::{Error, Result};