/// <summary> /// Maps a field type as included in the .proto file to a FieldType. /// </summary> private static FieldType GetFieldTypeFromProtoType(FieldDescriptorProto.Types.Type type) { switch (type) { case FieldDescriptorProto.Types.Type.TYPE_DOUBLE: return(FieldType.Double); case FieldDescriptorProto.Types.Type.TYPE_FLOAT: return(FieldType.Float); case FieldDescriptorProto.Types.Type.TYPE_INT64: return(FieldType.Int64); case FieldDescriptorProto.Types.Type.TYPE_UINT64: return(FieldType.UInt64); case FieldDescriptorProto.Types.Type.TYPE_INT32: return(FieldType.Int32); case FieldDescriptorProto.Types.Type.TYPE_FIXED64: return(FieldType.Fixed64); case FieldDescriptorProto.Types.Type.TYPE_FIXED32: return(FieldType.Fixed32); case FieldDescriptorProto.Types.Type.TYPE_BOOL: return(FieldType.Bool); case FieldDescriptorProto.Types.Type.TYPE_STRING: return(FieldType.String); case FieldDescriptorProto.Types.Type.TYPE_GROUP: return(FieldType.Group); case FieldDescriptorProto.Types.Type.TYPE_MESSAGE: return(FieldType.Message); case FieldDescriptorProto.Types.Type.TYPE_BYTES: return(FieldType.Bytes); case FieldDescriptorProto.Types.Type.TYPE_UINT32: return(FieldType.UInt32); case FieldDescriptorProto.Types.Type.TYPE_ENUM: return(FieldType.Enum); case FieldDescriptorProto.Types.Type.TYPE_SFIXED32: return(FieldType.SFixed32); case FieldDescriptorProto.Types.Type.TYPE_SFIXED64: return(FieldType.SFixed64); case FieldDescriptorProto.Types.Type.TYPE_SINT32: return(FieldType.SInt32); case FieldDescriptorProto.Types.Type.TYPE_SINT64: return(FieldType.SInt64); default: throw new ArgumentException("Invalid type specified"); } }
/// <summary> /// Maps a field type as included in the .proto file to a FieldType. /// </summary> private static FieldType GetFieldTypeFromProtoType(FieldDescriptorProto.Types.Type type) { return(type switch { FieldDescriptorProto.Types.Type.Double => FieldType.Double, FieldDescriptorProto.Types.Type.Float => FieldType.Float, FieldDescriptorProto.Types.Type.Int64 => FieldType.Int64, FieldDescriptorProto.Types.Type.Uint64 => FieldType.UInt64, FieldDescriptorProto.Types.Type.Int32 => FieldType.Int32, FieldDescriptorProto.Types.Type.Fixed64 => FieldType.Fixed64, FieldDescriptorProto.Types.Type.Fixed32 => FieldType.Fixed32, FieldDescriptorProto.Types.Type.Bool => FieldType.Bool, FieldDescriptorProto.Types.Type.String => FieldType.String, FieldDescriptorProto.Types.Type.Group => FieldType.Group, FieldDescriptorProto.Types.Type.Message => FieldType.Message, FieldDescriptorProto.Types.Type.Bytes => FieldType.Bytes, FieldDescriptorProto.Types.Type.Uint32 => FieldType.UInt32, FieldDescriptorProto.Types.Type.Enum => FieldType.Enum, FieldDescriptorProto.Types.Type.Sfixed32 => FieldType.SFixed32, FieldDescriptorProto.Types.Type.Sfixed64 => FieldType.SFixed64, FieldDescriptorProto.Types.Type.Sint32 => FieldType.SInt32, FieldDescriptorProto.Types.Type.Sint64 => FieldType.SInt64, _ => throw new ArgumentException("Invalid type specified"), });
/// <summary> /// Maps a field type as included in the .proto file to a FieldType. /// </summary> private static FieldType GetFieldTypeFromProtoType(FieldDescriptorProto.Types.Type type) { switch (type) { case FieldDescriptorProto.Types.Type.Double: return(FieldType.Double); case FieldDescriptorProto.Types.Type.Float: return(FieldType.Float); case FieldDescriptorProto.Types.Type.Int64: return(FieldType.Int64); case FieldDescriptorProto.Types.Type.Uint64: return(FieldType.UInt64); case FieldDescriptorProto.Types.Type.Int32: return(FieldType.Int32); case FieldDescriptorProto.Types.Type.Fixed64: return(FieldType.Fixed64); case FieldDescriptorProto.Types.Type.Fixed32: return(FieldType.Fixed32); case FieldDescriptorProto.Types.Type.Bool: return(FieldType.Bool); case FieldDescriptorProto.Types.Type.String: return(FieldType.String); case FieldDescriptorProto.Types.Type.Group: return(FieldType.Group); case FieldDescriptorProto.Types.Type.Message: return(FieldType.Message); case FieldDescriptorProto.Types.Type.Bytes: return(FieldType.Bytes); case FieldDescriptorProto.Types.Type.Uint32: return(FieldType.UInt32); case FieldDescriptorProto.Types.Type.Enum: return(FieldType.Enum); case FieldDescriptorProto.Types.Type.Sfixed32: return(FieldType.SFixed32); case FieldDescriptorProto.Types.Type.Sfixed64: return(FieldType.SFixed64); case FieldDescriptorProto.Types.Type.Sint32: return(FieldType.SInt32); case FieldDescriptorProto.Types.Type.Sint64: return(FieldType.SInt64); default: throw new ArgumentException("Invalid type specified"); } }
#pragma warning disable S4136 // Method overloads should be grouped together -> Method order is optimized for easier reading /// <summary> /// Determines the Delphi type identifier of the Delphi type that is used to represent single protobuf field values of a specific protobuf field type, /// when communicating with client code. /// </summary> /// <param name="fieldType">The protobuf field descriptor's type field value</param> /// <param name="fieldTypeName">The protobuf field descriptor's type name field value</param> /// <param name="generator">Function that generates a Delphi type name for a protobuf message type or enumerated type name</param> /// <returns>Corresponding Delphi type identifier</returns> internal static string GetPublicDelphiSingleValueType(this FieldDescriptorProto.Types.Type fieldType, string fieldTypeName, Func <string, string> generator) => fieldType switch {
private static FieldType GetFieldTypeFromProtoType(FieldDescriptorProto.Types.Type type) { switch (type) { case FieldDescriptorProto.Types.Type.TYPE_DOUBLE: break; case FieldDescriptorProto.Types.Type.TYPE_FLOAT: return(FieldType.Float); case FieldDescriptorProto.Types.Type.TYPE_INT64: return(FieldType.Int64); case FieldDescriptorProto.Types.Type.TYPE_UINT64: return(FieldType.UInt64); case FieldDescriptorProto.Types.Type.TYPE_INT32: return(FieldType.Int32); case FieldDescriptorProto.Types.Type.TYPE_FIXED64: return(FieldType.Fixed64); case FieldDescriptorProto.Types.Type.TYPE_FIXED32: return(FieldType.Fixed32); case FieldDescriptorProto.Types.Type.TYPE_BOOL: return(FieldType.Bool); case FieldDescriptorProto.Types.Type.TYPE_STRING: return(FieldType.String); case FieldDescriptorProto.Types.Type.TYPE_GROUP: return(FieldType.Group); case FieldDescriptorProto.Types.Type.TYPE_MESSAGE: return(FieldType.Message); case FieldDescriptorProto.Types.Type.TYPE_BYTES: return(FieldType.Bytes); case FieldDescriptorProto.Types.Type.TYPE_UINT32: return(FieldType.UInt32); case FieldDescriptorProto.Types.Type.TYPE_ENUM: return(FieldType.Enum); case FieldDescriptorProto.Types.Type.TYPE_SFIXED32: return(FieldType.SFixed32); case FieldDescriptorProto.Types.Type.TYPE_SFIXED64: return(FieldType.SFixed64); case FieldDescriptorProto.Types.Type.TYPE_SINT32: return(FieldType.SInt32); case FieldDescriptorProto.Types.Type.TYPE_SINT64: return(FieldType.SInt64); default: while (true) { IL_C5: uint arg_64_0 = 119551694u; while (true) { uint num; switch ((num = (arg_64_0 ^ 754523646u)) % 21u) { case 0u: return(FieldType.Double); case 1u: return(FieldType.SFixed64); case 2u: return(FieldType.UInt64); case 3u: return(FieldType.Enum); case 4u: return(FieldType.Int64); case 5u: return(FieldType.Int32); case 6u: goto IL_C5; case 7u: return(FieldType.String); case 8u: return(FieldType.Float); case 9u: return(FieldType.Fixed64); case 10u: return(FieldType.Message); case 11u: return(FieldType.UInt32); case 12u: return(FieldType.Bool); case 13u: return(FieldType.Fixed32); case 15u: return(FieldType.SInt64); case 16u: return(FieldType.Bytes); case 17u: return(FieldType.SInt32); case 18u: arg_64_0 = (num * 926929353u ^ 3080129912u); continue; case 19u: return(FieldType.SFixed32); case 20u: return(FieldType.Group); } goto Block_2; } } Block_2: throw FieldDescriptor.smethod_1(Module.smethod_37 <string>(2772032189u)); } return(FieldType.Double); }