use proc_macro2::TokenStream;
use quote::quote;
pub(crate) fn resolve(crate_path: Option<&syn::Path>) -> TokenStream {
crate_path.map_or_else(|| quote! { ortho_config }, |path| quote! { #path })
}
#[cfg(test)]
mod tests {
use super::*;
use rstest::rstest;
#[rstest]
#[case::default(None, "ortho_config")]
#[case::custom(Some("my_alias"), "my_alias")]
#[case::nested(Some("my_ns::ortho_config"), "my_ns :: ortho_config")]
fn resolve_produces_expected_tokens(#[case] input: Option<&str>, #[case] expected: &str) {
let parsed = input.map(|s| syn::parse_str::<syn::Path>(s).expect("valid path"));
let tokens = resolve(parsed.as_ref());
assert_eq!(tokens.to_string(), expected);
}
}