1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! 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),
//! ]);
//! ```
///
///
///
///
/// 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.