use crate::{
IntoProxied, Message, Mut, Proxied, Repeated, View,
__internal::{Private, SealedInternal},
};
pub unsafe trait Singular: Proxied + SealedInternal {
#[doc(hidden)]
fn repeated_new(_private: Private) -> Repeated<Self>;
#[doc(hidden)]
unsafe fn repeated_free(_private: Private, _repeated: &mut Repeated<Self>);
#[doc(hidden)]
fn repeated_len(_private: Private, repeated: View<Repeated<Self>>) -> usize;
#[doc(hidden)]
fn repeated_push(_private: Private, repeated: Mut<Repeated<Self>>, val: impl IntoProxied<Self>);
#[doc(hidden)]
fn repeated_clear(_private: Private, repeated: Mut<Repeated<Self>>);
#[doc(hidden)]
unsafe fn repeated_get_unchecked(
_private: Private,
repeated: View<Repeated<Self>>,
index: usize,
) -> View<Self>;
#[allow(unused_variables)]
#[doc(hidden)]
unsafe fn repeated_get_mut_unchecked(
_private: Private,
repeated: Mut<Repeated<Self>>,
index: usize,
) -> Mut<Self>
where
Self: Message,
{
panic!("repeated_get_mut_unchecked is only implemented for messages");
}
#[doc(hidden)]
unsafe fn repeated_set_unchecked(
_private: Private,
repeated: Mut<Repeated<Self>>,
index: usize,
val: impl IntoProxied<Self>,
);
#[doc(hidden)]
fn repeated_copy_from(_private: Private, src: View<Repeated<Self>>, dest: Mut<Repeated<Self>>);
#[doc(hidden)]
fn repeated_reserve(_private: Private, repeated: Mut<Repeated<Self>>, additional: usize);
}