pub struct UnifiedType {
pub base_type: BaseType,
pub is_optional: bool,
pub is_repeated: bool,
}Expand description
A language-neutral description of a protobuf field’s type.
UnifiedType is the bridge between parsing and generation: a proto field’s type and
cardinality are normalized into this single shape once, then each language backend renders it
via a TypeRenderer (e.g. unified_to_rust). The base_type carries
the underlying category while is_optional and
is_repeated describe the cardinality wrapping applied around it.
Fields§
§base_type: BaseTypeThe underlying type category.
is_optional: boolWhether this type is optional (Option<T> in Rust).
is_repeated: boolWhether this type is repeated (Vec<T> in Rust).
Implementations§
Source§impl UnifiedType
impl UnifiedType
Sourcepub fn type_ident(&self) -> Ident
pub fn type_ident(&self) -> Ident
Extract a syn::Ident for the inner type name (last segment of a qualified name).
Sourcepub fn is_singular_bytes(&self) -> bool
pub fn is_singular_bytes(&self) -> bool
A singular bytes value: not repeated.
Sourcepub fn map(key: UnifiedType, value: UnifiedType) -> Self
pub fn map(key: UnifiedType, value: UnifiedType) -> Self
Create a map type
Trait Implementations§
Source§impl Clone for UnifiedType
impl Clone for UnifiedType
Auto Trait Implementations§
impl Forget for UnifiedType
impl Freeze for UnifiedType
impl RefUnwindSafe for UnifiedType
impl Send for UnifiedType
impl Sync for UnifiedType
impl Unpin for UnifiedType
impl UnsafeUnpin for UnifiedType
impl UnwindSafe for UnifiedType
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more