1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
use super::Usage; /// Utility trait for constructing a [`Usage<U, T>`] /// ```rust /// use usage::{Usage, AsUsage}; /// /// pub enum Contrived {} /// let contrived_vec: Usage<Contrived, Vec<usize>> = Contrived::as_usage(vec![1, 2, 3]); /// ``` pub trait AsUsage: Sized { fn as_usage<T>(data: T) -> Usage<Self, T> { Usage { data, _phantom: Default::default(), } } } impl<T> AsUsage for T {}