use quote::ToTokens;
use crate::ast::symbol;
pub(crate) struct Sentinel(pub Option<syn::Lit>);
impl std::fmt::Debug for Sentinel {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.0.to_token_stream())
}
}
impl TryFrom<&syn::MetaNameValue> for Sentinel {
type Error = syn::Error;
fn try_from(input: &syn::MetaNameValue) -> syn::Result<Self> {
match symbol::parse_nv_sentinel(input) {
Some(Ok(x)) => Ok(Sentinel(Some(x))),
Some(Err(err)) => Err(err),
None => Ok(Sentinel(None)),
}
}
}