concision_data/traits/
convert.rs

1/*
2    Appellation: convert <module>
3    Created At: 2026.01.13:14:06:50
4    Contrib: @FL03
5*/
6use crate::dataset::DatasetBase;
7/// The [`AsDataset`] trait defines the conversion from some reference into a dataset.
8pub trait AsDataset<U, V> {
9    fn as_dataset(&self) -> DatasetBase<U, V>;
10}
11/// Thge [`IntoDataset`] trait defines a method for consuming the caller to convert it into a
12/// dataset.
13pub trait IntoDataset<U, V> {
14    fn into_dataset(self) -> DatasetBase<U, V>;
15}
16
17/*
18 ************* Implementations *************
19*/
20impl<U, V, A> AsDataset<U, V> for A
21where
22    A: AsRef<DatasetBase<U, V>>,
23    U: Clone,
24    V: Clone,
25{
26    fn as_dataset(&self) -> DatasetBase<U, V> {
27        self.as_ref().clone()
28    }
29}
30
31impl<U, V, A> IntoDataset<U, V> for A
32where
33    A: Into<DatasetBase<U, V>>,
34{
35    fn into_dataset(self) -> DatasetBase<U, V> {
36        self.into()
37    }
38}