| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- // DO NOT EDIT.
- // swift-format-ignore-file
- // swiftlint:disable all
- //
- // Generated by the Swift generator plugin for the protocol buffer compiler.
- // Source: google/protobuf/timestamp.proto
- //
- // For information on using the generated types, please see the documentation:
- // https://github.com/apple/swift-protobuf/
- // Protocol Buffers - Google's data interchange format
- // Copyright 2008 Google Inc. All rights reserved.
- // https://developers.google.com/protocol-buffers/
- //
- // Redistribution and use in source and binary forms, with or without
- // modification, are permitted provided that the following conditions are
- // met:
- //
- // * Redistributions of source code must retain the above copyright
- // notice, this list of conditions and the following disclaimer.
- // * Redistributions in binary form must reproduce the above
- // copyright notice, this list of conditions and the following disclaimer
- // in the documentation and/or other materials provided with the
- // distribution.
- // * Neither the name of Google Inc. nor the names of its
- // contributors may be used to endorse or promote products derived from
- // this software without specific prior written permission.
- //
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- // 'import SwiftProtobuf' suppressed, this proto file is meant to be bundled in the runtime.
- // If the compiler emits an error on this type, it is because this file
- // was generated by a version of the `protoc` Swift plug-in that is
- // incompatible with the version of SwiftProtobuf to which you are linking.
- // Please ensure that you are building against the same version of the API
- // that was used to generate this file.
- fileprivate struct _GeneratedWithProtocGenSwiftVersion: ProtobufAPIVersionCheck {
- struct _2: ProtobufAPIVersion_2 {}
- typealias Version = _2
- }
- /// A Timestamp represents a point in time independent of any time zone or local
- /// calendar, encoded as a count of seconds and fractions of seconds at
- /// nanosecond resolution. The count is relative to an epoch at UTC midnight on
- /// January 1, 1970, in the proleptic Gregorian calendar which extends the
- /// Gregorian calendar backwards to year one.
- ///
- /// All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
- /// second table is needed for interpretation, using a [24-hour linear
- /// smear](https://developers.google.com/time/smear).
- ///
- /// The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
- /// restricting to that range, we ensure that we can convert to and from [RFC
- /// 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
- ///
- /// # Examples
- ///
- /// Example 1: Compute Timestamp from POSIX `time()`.
- ///
- /// Timestamp timestamp;
- /// timestamp.set_seconds(time(NULL));
- /// timestamp.set_nanos(0);
- ///
- /// Example 2: Compute Timestamp from POSIX `gettimeofday()`.
- ///
- /// struct timeval tv;
- /// gettimeofday(&tv, NULL);
- ///
- /// Timestamp timestamp;
- /// timestamp.set_seconds(tv.tv_sec);
- /// timestamp.set_nanos(tv.tv_usec * 1000);
- ///
- /// Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`.
- ///
- /// FILETIME ft;
- /// GetSystemTimeAsFileTime(&ft);
- /// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;
- ///
- /// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
- /// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
- /// Timestamp timestamp;
- /// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
- /// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));
- ///
- /// Example 4: Compute Timestamp from Java `System.currentTimeMillis()`.
- ///
- /// long millis = System.currentTimeMillis();
- ///
- /// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
- /// .setNanos((int) ((millis % 1000) * 1000000)).build();
- ///
- /// Example 5: Compute Timestamp from Java `Instant.now()`.
- ///
- /// Instant now = Instant.now();
- ///
- /// Timestamp timestamp =
- /// Timestamp.newBuilder().setSeconds(now.getEpochSecond())
- /// .setNanos(now.getNano()).build();
- ///
- /// Example 6: Compute Timestamp from current time in Python.
- ///
- /// timestamp = Timestamp()
- /// timestamp.GetCurrentTime()
- ///
- /// # JSON Mapping
- ///
- /// In JSON format, the Timestamp type is encoded as a string in the
- /// [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the
- /// format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z"
- /// where {year} is always expressed using four digits while {month}, {day},
- /// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
- /// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
- /// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
- /// is required. A ProtoJSON serializer should always use UTC (as indicated by
- /// "Z") when printing the Timestamp type and a ProtoJSON parser should be
- /// able to accept both UTC and other timezones (as indicated by an offset).
- ///
- /// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
- /// 01:30 UTC on January 15, 2017.
- ///
- /// In JavaScript, one can convert a Date object to this format using the
- /// standard
- /// [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
- /// method. In Python, a standard `datetime.datetime` object can be converted
- /// to this format using
- /// [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with
- /// the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use
- /// the Joda Time's [`ISODateTimeFormat.dateTime()`](
- /// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()
- /// ) to obtain a formatter capable of generating timestamps in this format.
- public struct Google_Protobuf_Timestamp: Sendable {
- // SwiftProtobuf.Message conformance is added in an extension below. See the
- // `Message` and `Message+*Additions` files in the SwiftProtobuf library for
- // methods supported on all messages.
- /// Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must
- /// be between -62135596800 and 253402300799 inclusive (which corresponds to
- /// 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z).
- public var seconds: Int64 = 0
- /// Non-negative fractions of a second at nanosecond resolution. This field is
- /// the nanosecond portion of the duration, not an alternative to seconds.
- /// Negative second values with fractions must still have non-negative nanos
- /// values that count forward in time. Must be between 0 and 999,999,999
- /// inclusive.
- public var nanos: Int32 = 0
- public var unknownFields = UnknownStorage()
- public init() {}
- }
- // MARK: - Code below here is support for the SwiftProtobuf runtime.
- fileprivate let _protobuf_package = "google.protobuf"
- extension Google_Protobuf_Timestamp: Message, _MessageImplementationBase, _ProtoNameProviding {
- public static let protoMessageName: String = _protobuf_package + ".Timestamp"
- public static let _protobuf_nameMap = _NameMap(bytecode: "\0\u{1}seconds\0\u{1}nanos\0")
- public mutating func decodeMessage<D: Decoder>(decoder: inout D) throws {
- while let fieldNumber = try decoder.nextFieldNumber() {
- // The use of inline closures is to circumvent an issue where the compiler
- // allocates stack space for every case branch when no optimizations are
- // enabled. https://github.com/apple/swift-protobuf/issues/1034
- switch fieldNumber {
- case 1: try { try decoder.decodeSingularInt64Field(value: &self.seconds) }()
- case 2: try { try decoder.decodeSingularInt32Field(value: &self.nanos) }()
- default: break
- }
- }
- }
- public func traverse<V: Visitor>(visitor: inout V) throws {
- if self.seconds != 0 {
- try visitor.visitSingularInt64Field(value: self.seconds, fieldNumber: 1)
- }
- if self.nanos != 0 {
- try visitor.visitSingularInt32Field(value: self.nanos, fieldNumber: 2)
- }
- try unknownFields.traverse(visitor: &visitor)
- }
- public static func ==(lhs: Google_Protobuf_Timestamp, rhs: Google_Protobuf_Timestamp) -> Bool {
- if lhs.seconds != rhs.seconds {return false}
- if lhs.nanos != rhs.nanos {return false}
- if lhs.unknownFields != rhs.unknownFields {return false}
- return true
- }
- }
|