/// The ID of a variable which could be constrained,
/// whose value could be found by ezpz.
pub type Id = u32;
/// Generates an incrementing sequence of IDs starting from 0.
/// ```
/// use kcl_ezpz::{datatypes::inputs::DatumPoint, IdGenerator};
/// let mut ids = IdGenerator::default();
/// // This point has two variables, its X and Y.
/// let p = DatumPoint::new(&mut ids);
/// // This point also has two variables.
/// let q = DatumPoint::new(&mut ids);
/// // So there should be 4 variables generated so far,
/// // i.e. 0, 1, 2 and 3.
/// // This means the next ID should be 4.
/// assert_eq!(ids.next_id(), 4);
/// ```