# EvolvingString Library The EvolvingString library is a Rust crate that provides functionalities for creating and managing evolving strings, where the evolution of the string is determined by a SHA256 hash function based on an initial string, a secret, and a time interval. ## Features - Create an instance of EvolvingString with an initial string, secret, and an interval for evolution. - Calculate the current state of the string based on the elapsed time since the instance was created. - Predict the state of the string after a specific amount of time has passed. - Serialize and deserialize EvolvingString instances to and from a base64 representation. ## Usage To use the EvolvingString library in your Rust project, add the following to your `Cargo.toml` file under `[dependencies]`: ```toml evolvingstring = "0.1.0" ``` You can then create an EvolvingString instance and use its methods as follows: ```rust use evolvingstring::EvolvingString; let es = EvolvingString::new("initial value", "secret key", 60); let current_state = es.current(); let predicted_state = es.predict(120); let b64_encoded = es.to_base64(); let es_from_b64 = EvolvingString::from_base64(&b64_encoded).unwrap(); ``` Replace "initial value" and "secret key" with your own initial string and secret, and choose an appropriate interval in seconds for the evolution of the string. ## Testing The library comes with an extensive suite of tests to ensure the correctness of the implemented features. You can run the tests using the `cargo test` command. ## Author EvolvingString is maintained by Jesse McPherson (). For any questions or contributions, please contact the author directly. ## License This project is licensed under the MIT License - see the LICENSE file for details.