impl {{ m.ident }}Trait for () {
    {%- for f in m.fields %}
    {%- if f.is_message %}
    type {{ f.ident_camel_unesc }}MessageType<'this> where Self: 'this = ();
    {%- endif %}

    {%- if f.is_repeated %}
    type {{ f.ident_camel_unesc }}RepeatedType<'this> where Self: 'this = ::puroro::internal::impls::empty::EmptyRepeatedField<{{ f.trait_scalar_getter_type }}>;
    fn {{ f.ident }}<'this>(&'this self) -> Self::{{ f.ident_camel_unesc }}RepeatedType<'this> {
        ::puroro::internal::impls::empty::EmptyRepeatedField::new()
    }
    {%- endif %}
    {%- endfor %} {#- for f in m.fields #}

    {%- for oneof in m.oneofs %}
    fn {{ oneof.field_ident }}(&self) ->
        Option<
            super::_puroro_nested::{{ m.submodule_ident }}::_puroro_oneofs::
                {{ oneof.enum_ident }}{{ oneof.enum_maybe_gp_self }}
        >
    {
        None
    }
    {%- endfor %}
}
