proto-types 0.1.0

Rust types generated from the google.protobuf and buf.validate protobuf packages, plus extra helpers for implementing validation with the protocheck crate.
Documentation
#[cfg(feature = "totokens")]
mod totokens {
  use proc_macro2::TokenStream;
  use quote::{quote, ToTokens};

  use crate::field_descriptor_proto::Type as ProtoType;

  impl ToTokens for ProtoType {
    fn to_tokens(&self, tokens: &mut TokenStream) {
      let path = quote! { ::protocheck::types::field_descriptor_proto::Type };

      match self {
        ProtoType::Double => tokens.extend(quote! { #path::Double }),
        ProtoType::Float => tokens.extend(quote! { #path::Float }),
        ProtoType::Int64 => tokens.extend(quote! { #path::Int64 }),
        ProtoType::Uint64 => tokens.extend(quote! { #path::Uint64 }),
        ProtoType::Int32 => tokens.extend(quote! { #path::Int32 }),
        ProtoType::Fixed64 => tokens.extend(quote! { #path::Fixed64 }),
        ProtoType::Fixed32 => tokens.extend(quote! { #path::Fixed32 }),
        ProtoType::Bool => tokens.extend(quote! { #path::Bool }),
        ProtoType::String => tokens.extend(quote! { #path::String }),
        ProtoType::Group => tokens.extend(quote! { #path::Group }),
        ProtoType::Message => tokens.extend(quote! { #path::Message }),
        ProtoType::Bytes => tokens.extend(quote! { #path::Bytes }),
        ProtoType::Uint32 => tokens.extend(quote! { #path::Uint32 }),
        ProtoType::Enum => tokens.extend(quote! { #path::Enum }),
        ProtoType::Sfixed32 => tokens.extend(quote! { #path::Sfixed32 }),
        ProtoType::Sfixed64 => tokens.extend(quote! { #path::Sfixed64 }),
        ProtoType::Sint32 => tokens.extend(quote! { #path::Sint32 }),
        ProtoType::Sint64 => tokens.extend(quote! { #path::Sint64 }),
      }
    }
  }
}