module Proto::Generator

Defined in:

proto/generator/field_naming.cr
proto/generator/file_generator.cr
proto/generator/identifier_policy.cr
proto/generator/message_structure.cr
proto/generator/naming.cr
proto/generator/type_resolver.cr

Constant Summary

PACKABLE_TYPES = Set {Bootstrap::FieldType::TYPE_DOUBLE, Bootstrap::FieldType::TYPE_FLOAT, Bootstrap::FieldType::TYPE_INT64, Bootstrap::FieldType::TYPE_UINT64, Bootstrap::FieldType::TYPE_INT32, Bootstrap::FieldType::TYPE_FIXED64, Bootstrap::FieldType::TYPE_FIXED32, Bootstrap::FieldType::TYPE_BOOL, Bootstrap::FieldType::TYPE_UINT32, Bootstrap::FieldType::TYPE_SFIXED32, Bootstrap::FieldType::TYPE_SFIXED64, Bootstrap::FieldType::TYPE_SINT32, Bootstrap::FieldType::TYPE_SINT64, Bootstrap::FieldType::TYPE_ENUM}

Field types that are packable in proto3.

SCALAR_READER_MAP = {Bootstrap::FieldType::TYPE_DOUBLE => "read_double", Bootstrap::FieldType::TYPE_FLOAT => "read_float", Bootstrap::FieldType::TYPE_INT64 => "read_int64", Bootstrap::FieldType::TYPE_UINT64 => "read_uint64", Bootstrap::FieldType::TYPE_INT32 => "read_int32", Bootstrap::FieldType::TYPE_FIXED64 => "read_fixed64", Bootstrap::FieldType::TYPE_FIXED32 => "read_fixed32", Bootstrap::FieldType::TYPE_BOOL => "read_bool", Bootstrap::FieldType::TYPE_STRING => "read_string", Bootstrap::FieldType::TYPE_BYTES => "read_bytes", Bootstrap::FieldType::TYPE_UINT32 => "read_uint32", Bootstrap::FieldType::TYPE_SFIXED32 => "read_sfixed32", Bootstrap::FieldType::TYPE_SFIXED64 => "read_sfixed64", Bootstrap::FieldType::TYPE_SINT32 => "read_sint32", Bootstrap::FieldType::TYPE_SINT64 => "read_sint64"}

Maps proto scalar field types to Wire::Reader read methods.

SCALAR_TYPE_MAP = {Bootstrap::FieldType::TYPE_DOUBLE => "Float64", Bootstrap::FieldType::TYPE_FLOAT => "Float32", Bootstrap::FieldType::TYPE_INT64 => "Int64", Bootstrap::FieldType::TYPE_UINT64 => "UInt64", Bootstrap::FieldType::TYPE_INT32 => "Int32", Bootstrap::FieldType::TYPE_FIXED64 => "UInt64", Bootstrap::FieldType::TYPE_FIXED32 => "UInt32", Bootstrap::FieldType::TYPE_BOOL => "Bool", Bootstrap::FieldType::TYPE_STRING => "String", Bootstrap::FieldType::TYPE_BYTES => "Bytes", Bootstrap::FieldType::TYPE_UINT32 => "UInt32", Bootstrap::FieldType::TYPE_SFIXED32 => "Int32", Bootstrap::FieldType::TYPE_SFIXED64 => "Int64", Bootstrap::FieldType::TYPE_SINT32 => "Int32", Bootstrap::FieldType::TYPE_SINT64 => "Int64"}

Maps proto scalar types to Crystal types.

SCALAR_WIRE_TYPE_MAP = {Bootstrap::FieldType::TYPE_DOUBLE => "Proto::WireType::FIXED64", Bootstrap::FieldType::TYPE_FLOAT => "Proto::WireType::FIXED32", Bootstrap::FieldType::TYPE_INT64 => "Proto::WireType::VARINT", Bootstrap::FieldType::TYPE_UINT64 => "Proto::WireType::VARINT", Bootstrap::FieldType::TYPE_INT32 => "Proto::WireType::VARINT", Bootstrap::FieldType::TYPE_FIXED64 => "Proto::WireType::FIXED64", Bootstrap::FieldType::TYPE_FIXED32 => "Proto::WireType::FIXED32", Bootstrap::FieldType::TYPE_BOOL => "Proto::WireType::VARINT", Bootstrap::FieldType::TYPE_STRING => "Proto::WireType::LENGTH_DELIMITED", Bootstrap::FieldType::TYPE_BYTES => "Proto::WireType::LENGTH_DELIMITED", Bootstrap::FieldType::TYPE_UINT32 => "Proto::WireType::VARINT", Bootstrap::FieldType::TYPE_SFIXED32 => "Proto::WireType::FIXED32", Bootstrap::FieldType::TYPE_SFIXED64 => "Proto::WireType::FIXED64", Bootstrap::FieldType::TYPE_SINT32 => "Proto::WireType::VARINT", Bootstrap::FieldType::TYPE_SINT64 => "Proto::WireType::VARINT"}

Wire types for scalar field types.

SCALAR_WRITER_MAP = {Bootstrap::FieldType::TYPE_DOUBLE => "write_double", Bootstrap::FieldType::TYPE_FLOAT => "write_float", Bootstrap::FieldType::TYPE_INT64 => "write_int64", Bootstrap::FieldType::TYPE_UINT64 => "write_uint64", Bootstrap::FieldType::TYPE_INT32 => "write_int32", Bootstrap::FieldType::TYPE_FIXED64 => "write_fixed64", Bootstrap::FieldType::TYPE_FIXED32 => "write_fixed32", Bootstrap::FieldType::TYPE_BOOL => "write_bool", Bootstrap::FieldType::TYPE_STRING => "write_string", Bootstrap::FieldType::TYPE_BYTES => "write_bytes", Bootstrap::FieldType::TYPE_UINT32 => "write_uint32", Bootstrap::FieldType::TYPE_SFIXED32 => "write_sfixed32", Bootstrap::FieldType::TYPE_SFIXED64 => "write_sfixed64", Bootstrap::FieldType::TYPE_SINT32 => "write_sint32", Bootstrap::FieldType::TYPE_SINT64 => "write_sint64"}

Maps proto scalar field types to Wire::Writer write methods.