File: decimal_pb.rb

package info (click to toggle)
ruby-googleapis-common-protos-types 1.22.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 624 kB
  • sloc: ruby: 7; makefile: 4
file content (115 lines) | stat: -rw-r--r-- 5,140 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# 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
pool.add_serialized_file(descriptor_data)

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 2025 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;
# }