# string_io_and_mock *by Koen Bekx* The `string_io_and_mock` crate provides a struct `FileTextHandler` that acts as a mockable layer over a file system. It provides write and read operations that are required by the `TextIOHandler` trait : - method `write_text` writes String content to a file or file system simulator; - method `read_text` reads String content from a file or file system simulator; The *Text* in the names of the trait and structs mean that these entities are only meant to handle **`String`** content, as is evident from the signatures of the trait's methods. For unit tests - or for other applications - a mock `MockTextHandler` is available that also implements the `TextIOHandler` trait, but doesn't access any file system. It stores it texts in a `HashMap` instead. This means that `MockTextHandler` is more than a mere mock: with its internal persistence, it can serve as an application component in its own right, providing string storage in memory where file storage isn't needed. ## Usage In order to use this crate, add it to your project's Cargo.toml file using the command ``` cargo add string_io_and_mock ``` and add the below statement in your code : ``` use string_io_and_mock::{FileTextHandler, MockTextHandler, TextIOHandler}; ``` ## Examples For examples of how to use these components in code, see the crate's code documentation or its unit and integration tests.