use super::{CompactTupleSketch, TupleSketch, TupleSummary};
use apache_datasketches_sys::tuple_generic_input::TupleGenericInputRef;
mod sealed {
use super::TupleSummary;
pub trait Sealed {}
impl<S: TupleSummary> Sealed for super::TupleSketch<S> {}
impl<S: TupleSummary> Sealed for super::CompactTupleSketch<S> {}
}
pub trait TupleInput<S: TupleSummary>: sealed::Sealed {
#[doc(hidden)]
fn as_input(&self) -> TupleGenericInputRef<'_>;
}
impl<S: TupleSummary> TupleInput<S> for TupleSketch<S> {
fn as_input(&self) -> TupleGenericInputRef<'_> {
TupleGenericInputRef::Sketch(&self.inner)
}
}
impl<S: TupleSummary> TupleInput<S> for CompactTupleSketch<S> {
fn as_input(&self) -> TupleGenericInputRef<'_> {
TupleGenericInputRef::Compact(&self.inner)
}
}