{# Opaque wrapper + conversions stay unconditional: frb_generated.rs references the #}
{# wrapper type unconditionally. The mirror crate pins the core dependency with its #}
{# full feature set, so `inner_path` is always available. See #}
{# rust_mirror_enum_attribute.jinja for the full rationale. #}
#[frb(opaque)]
pub struct {{ name }} {
    pub(crate) inner: {{ inner_path }},
}

impl From<{{ inner_path }}> for {{ name }} {
    fn from(inner: {{ inner_path }}) -> Self {
        Self { inner }
    }
}

impl From<{{ name }}> for {{ inner_path }} {
    fn from(value: {{ name }}) -> Self {
        value.inner
    }
}
