use crate::{DataType, DefOpts, ExportError, Type};
pub trait SpectaFunctionArg<TMarker> {
fn to_datatype(opts: DefOpts) -> Result<Option<DataType>, ExportError>;
}
#[doc(hidden)]
pub enum SpectaFunctionArgDeserializeMarker {}
#[cfg(feature = "serde")]
impl<'de, T: serde::Deserialize<'de> + Type> SpectaFunctionArg<SpectaFunctionArgDeserializeMarker>
for T
{
fn to_datatype(opts: DefOpts) -> Result<Option<DataType>, ExportError> {
T::reference(opts, &[]).map(Some)
}
}