#protobuf #rust Mark {Map, Repeated}::new() as public
* Matches the C++ Protobuf API. * Improves ergonomics by allowing users to provide Into, FromIterator, et. al. implementations. * Allows owned types to be returned from functions. PiperOrigin-RevId: 615008080pull/16129/head
parent
9ff062cd34
commit
ad5e55ab92
13
rust/map.rs
13
rust/map.rs
|
@ -163,8 +163,7 @@ where
|
|||
K: Proxied + ?Sized,
|
||||
V: ProxiedInMapValue<K> + ?Sized,
|
||||
{
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn new() -> Self {
|
||||
pub fn new() -> Self {
|
||||
V::map_new(Private)
|
||||
}
|
||||
|
||||
|
@ -186,6 +185,16 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
impl<K, V> Default for Map<K, V>
|
||||
where
|
||||
K: Proxied + ?Sized,
|
||||
V: ProxiedInMapValue<K> + ?Sized,
|
||||
{
|
||||
fn default() -> Self {
|
||||
Map::new()
|
||||
}
|
||||
}
|
||||
|
||||
#[doc(hidden)]
|
||||
impl<'msg, K: ?Sized, V: ?Sized> MapView<'msg, K, V> {
|
||||
#[doc(hidden)]
|
||||
|
|
|
@ -280,8 +280,7 @@ pub struct Repeated<T: ?Sized + ProxiedInRepeated> {
|
|||
}
|
||||
|
||||
impl<T: ?Sized + ProxiedInRepeated> Repeated<T> {
|
||||
#[allow(dead_code)]
|
||||
pub(crate) fn new() -> Self {
|
||||
pub fn new() -> Self {
|
||||
T::repeated_new(Private)
|
||||
}
|
||||
|
||||
|
@ -294,6 +293,12 @@ impl<T: ?Sized + ProxiedInRepeated> Repeated<T> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<T: ?Sized + ProxiedInRepeated> Default for Repeated<T> {
|
||||
fn default() -> Self {
|
||||
Repeated::new()
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: ?Sized + ProxiedInRepeated> Drop for Repeated<T> {
|
||||
fn drop(&mut self) {
|
||||
// SAFETY: only called once
|
||||
|
|
Loading…
Reference in New Issue