55 lines · 1.3 KB · Rust
RawDownload
//! A crate with utilities that don't need feature toggles.//!//! If they would need feature toggles, they should be in `gix-features` instead.//!//! ## Examples//!//! ```//! use std::time::Duration;//!//! use gix_utils::{backoff::Quadratic};//!//! let waits: Vec<_> = Quadratic::default().take(3).collect();//! assert_eq!(waits, vec![//!     Duration::from_millis(1),//!     Duration::from_millis(4),//!     Duration::from_millis(9),//! ]);//! ```#![deny(missing_docs)]#![forbid(unsafe_code)] ///pub mod backoff; ///pub mod rng; ///pub mod buffers; ///pub mod str; ///pub mod btoi; /// Byte-string conversion utilities.#[cfg(feature = "bstr")]mod bstr;#[cfg(feature = "bstr")]pub use bstr::{AsBStr, AsBStrOpt}; /// A utility to do buffer-swapping with.////// Use `src` to read from and `dest` to write to, and after actually changing data, call [Buffers::swap()]./// To be able to repeat the process, this time using what was `dest` as `src`, freeing up `dest` for writing once more.////// Note that after each [`Buffers::swap()`], `src` is the most recent version of the data, just like before each swap.#[derive(Default, Clone)]pub struct Buffers {    /// The source data, as basis for processing.    pub src: Vec<u8>,    /// The data produced after processing `src`.    pub dest: Vec<u8>,}