# frozen_string_literal: true # Generated by the protocol buffer compiler. DO NOT EDIT! # source: google/type/decimal.proto require 'google/protobuf' descriptor_data = "\n\x19google/type/decimal.proto\x12\x0bgoogle.type\"\x18\n\x07\x44\x65\x63imal\x12\r\n\x05value\x18\x01 \x01(\tBf\n\x0f\x63om.google.typeB\x0c\x44\x65\x63imalProtoP\x01Z:google.golang.org/genproto/googleapis/type/decimal;decimal\xf8\x01\x01\xa2\x02\x03GTPb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool begin pool.add_serialized_file(descriptor_data) rescue TypeError # Compatibility code: will be removed in the next major version. require 'google/protobuf/descriptor_pb' parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) parsed.clear_dependency serialized = parsed.class.encode(parsed) file = pool.add_serialized_file(serialized) warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" imports = [ ] imports.each do |type_name, expected_filename| import_file = pool.lookup(type_name).file_descriptor if import_file.name != expected_filename warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" end end warn "Each proto file must use a consistent fully-qualified name." warn "This will become an error in the next major version." end module Google module Type Decimal = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.type.Decimal").msgclass end end #### Source proto file: google/type/decimal.proto #### # # // Copyright 2024 Google LLC # // # // Licensed under the Apache License, Version 2.0 (the "License"); # // you may not use this file except in compliance with the License. # // You may obtain a copy of the License at # // # // http://www.apache.org/licenses/LICENSE-2.0 # // # // Unless required by applicable law or agreed to in writing, software # // distributed under the License is distributed on an "AS IS" BASIS, # // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # // See the License for the specific language governing permissions and # // limitations under the License. # # syntax = "proto3"; # # package google.type; # # option cc_enable_arenas = true; # option go_package = "google.golang.org/genproto/googleapis/type/decimal;decimal"; # option java_multiple_files = true; # option java_outer_classname = "DecimalProto"; # option java_package = "com.google.type"; # option objc_class_prefix = "GTP"; # # // A representation of a decimal value, such as 2.5. Clients may convert values # // into language-native decimal formats, such as Java's [BigDecimal][] or # // Python's [decimal.Decimal][]. # // # // [BigDecimal]: # // https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/math/BigDecimal.html # // [decimal.Decimal]: https://docs.python.org/3/library/decimal.html # message Decimal { # // The decimal value, as a string. # // # // The string representation consists of an optional sign, `+` (`U+002B`) # // or `-` (`U+002D`), followed by a sequence of zero or more decimal digits # // ("the integer"), optionally followed by a fraction, optionally followed # // by an exponent. # // # // The fraction consists of a decimal point followed by zero or more decimal # // digits. The string must contain at least one digit in either the integer # // or the fraction. The number formed by the sign, the integer and the # // fraction is referred to as the significand. # // # // The exponent consists of the character `e` (`U+0065`) or `E` (`U+0045`) # // followed by one or more decimal digits. # // # // Services **should** normalize decimal values before storing them by: # // # // - Removing an explicitly-provided `+` sign (`+2.5` -> `2.5`). # // - Replacing a zero-length integer value with `0` (`.5` -> `0.5`). # // - Coercing the exponent character to lower-case (`2.5E8` -> `2.5e8`). # // - Removing an explicitly-provided zero exponent (`2.5e0` -> `2.5`). # // # // Services **may** perform additional normalization based on its own needs # // and the internal decimal implementation selected, such as shifting the # // decimal point and exponent value together (example: `2.5e-1` <-> `0.25`). # // Additionally, services **may** preserve trailing zeroes in the fraction # // to indicate increased precision, but are not required to do so. # // # // Note that only the `.` character is supported to divide the integer # // and the fraction; `,` **should not** be supported regardless of locale. # // Additionally, thousand separators **should not** be supported. If a # // service does support them, values **must** be normalized. # // # // The ENBF grammar is: # // # // DecimalString = # // [Sign] Significand [Exponent]; # // # // Sign = '+' | '-'; # // # // Significand = # // Digits ['.'] [Digits] | [Digits] '.' Digits; # // # // Exponent = ('e' | 'E') [Sign] Digits; # // # // Digits = { '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' }; # // # // Services **should** clearly document the range of supported values, the # // maximum supported precision (total number of digits), and, if applicable, # // the scale (number of digits after the decimal point), as well as how it # // behaves when receiving out-of-bounds values. # // # // Services **may** choose to accept values passed as input even when the # // value has a higher precision or scale than the service supports, and # // **should** round the value to fit the supported scale. Alternatively, the # // service **may** error with `400 Bad Request` (`INVALID_ARGUMENT` in gRPC) # // if precision would be lost. # // # // Services **should** error with `400 Bad Request` (`INVALID_ARGUMENT` in # // gRPC) if the service receives a value outside of the supported range. # string value = 1; # }