| // This is a generated file - do not edit. |
| // |
| // Generated from google/protobuf/duration.proto. |
| |
| // @dart = 3.3 |
| |
| // ignore_for_file: annotate_overrides, camel_case_types, comment_references |
| // ignore_for_file: constant_identifier_names |
| // ignore_for_file: curly_braces_in_flow_control_structures |
| // ignore_for_file: deprecated_member_use_from_same_package |
| // ignore_for_file: implementation_imports, library_prefixes |
| // ignore_for_file: non_constant_identifier_names |
| |
| import 'dart:core' as $core; |
| |
| import 'package:fixnum/fixnum.dart' as $fixnum; |
| import 'package:protobuf/protobuf.dart' as $pb; |
| import 'package:protobuf/src/protobuf/mixins/well_known.dart' as $mixin; |
| |
| export 'package:protobuf/protobuf.dart' show GeneratedMessageGenericExtensions; |
| |
| /// A Duration represents a signed, fixed-length span of time represented |
| /// as a count of seconds and fractions of seconds at nanosecond |
| /// resolution. It is independent of any calendar and concepts like "day" |
| /// or "month". It is related to Timestamp in that the difference between |
| /// two Timestamp values is a Duration and it can be added or subtracted |
| /// from a Timestamp. Range is approximately +-10,000 years. |
| /// |
| /// # Examples |
| /// |
| /// Example 1: Compute Duration from two Timestamps in pseudo code. |
| /// |
| /// Timestamp start = ...; |
| /// Timestamp end = ...; |
| /// Duration duration = ...; |
| /// |
| /// duration.seconds = end.seconds - start.seconds; |
| /// duration.nanos = end.nanos - start.nanos; |
| /// |
| /// if (duration.seconds < 0 && duration.nanos > 0) { |
| /// duration.seconds += 1; |
| /// duration.nanos -= 1000000000; |
| /// } else if (duration.seconds > 0 && duration.nanos < 0) { |
| /// duration.seconds -= 1; |
| /// duration.nanos += 1000000000; |
| /// } |
| /// |
| /// Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. |
| /// |
| /// Timestamp start = ...; |
| /// Duration duration = ...; |
| /// Timestamp end = ...; |
| /// |
| /// end.seconds = start.seconds + duration.seconds; |
| /// end.nanos = start.nanos + duration.nanos; |
| /// |
| /// if (end.nanos < 0) { |
| /// end.seconds -= 1; |
| /// end.nanos += 1000000000; |
| /// } else if (end.nanos >= 1000000000) { |
| /// end.seconds += 1; |
| /// end.nanos -= 1000000000; |
| /// } |
| /// |
| /// Example 3: Compute Duration from datetime.timedelta in Python. |
| /// |
| /// td = datetime.timedelta(days=3, minutes=10) |
| /// duration = Duration() |
| /// duration.FromTimedelta(td) |
| /// |
| /// # JSON Mapping |
| /// |
| /// In JSON format, the Duration type is encoded as a string rather than an |
| /// object, where the string ends in the suffix "s" (indicating seconds) and |
| /// is preceded by the number of seconds, with nanoseconds expressed as |
| /// fractional seconds. For example, 3 seconds with 0 nanoseconds should be |
| /// encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should |
| /// be expressed in JSON format as "3.000000001s", and 3 seconds and 1 |
| /// microsecond should be expressed in JSON format as "3.000001s". |
| class Duration extends $pb.GeneratedMessage with $mixin.DurationMixin { |
| factory Duration({ |
| $fixnum.Int64? seconds, |
| $core.int? nanos, |
| }) { |
| final result = create(); |
| if (seconds != null) result.seconds = seconds; |
| if (nanos != null) result.nanos = nanos; |
| return result; |
| } |
| |
| Duration._(); |
| |
| factory Duration.fromBuffer($core.List<$core.int> data, |
| [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => |
| create()..mergeFromBuffer(data, registry); |
| factory Duration.fromJson($core.String json, |
| [$pb.ExtensionRegistry registry = $pb.ExtensionRegistry.EMPTY]) => |
| create()..mergeFromJson(json, registry); |
| |
| static final $pb.BuilderInfo _i = $pb.BuilderInfo( |
| _omitMessageNames ? '' : 'Duration', |
| package: |
| const $pb.PackageName(_omitMessageNames ? '' : 'google.protobuf'), |
| createEmptyInstance: create, |
| toProto3Json: $mixin.DurationMixin.toProto3JsonHelper, |
| fromProto3Json: $mixin.DurationMixin.fromProto3JsonHelper) |
| ..aInt64(1, _omitFieldNames ? '' : 'seconds') |
| ..a<$core.int>(2, _omitFieldNames ? '' : 'nanos', $pb.PbFieldType.O3) |
| ..hasRequiredFields = false; |
| |
| @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.') |
| Duration clone() => Duration()..mergeFromMessage(this); |
| @$core.Deprecated('See https://github.com/google/protobuf.dart/issues/998.') |
| Duration copyWith(void Function(Duration) updates) => |
| super.copyWith((message) => updates(message as Duration)) as Duration; |
| |
| @$core.override |
| $pb.BuilderInfo get info_ => _i; |
| |
| @$core.pragma('dart2js:noInline') |
| static Duration create() => Duration._(); |
| @$core.override |
| Duration createEmptyInstance() => create(); |
| static $pb.PbList<Duration> createRepeated() => $pb.PbList<Duration>(); |
| @$core.pragma('dart2js:noInline') |
| static Duration getDefault() => |
| _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Duration>(create); |
| static Duration? _defaultInstance; |
| |
| /// Signed seconds of the span of time. Must be from -315,576,000,000 |
| /// to +315,576,000,000 inclusive. Note: these bounds are computed from: |
| /// 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
| @$pb.TagNumber(1) |
| $fixnum.Int64 get seconds => $_getI64(0); |
| @$pb.TagNumber(1) |
| set seconds($fixnum.Int64 value) => $_setInt64(0, value); |
| @$pb.TagNumber(1) |
| $core.bool hasSeconds() => $_has(0); |
| @$pb.TagNumber(1) |
| void clearSeconds() => $_clearField(1); |
| |
| /// Signed fractions of a second at nanosecond resolution of the span |
| /// of time. Durations less than one second are represented with a 0 |
| /// `seconds` field and a positive or negative `nanos` field. For durations |
| /// of one second or more, a non-zero value for the `nanos` field must be |
| /// of the same sign as the `seconds` field. Must be from -999,999,999 |
| /// to +999,999,999 inclusive. |
| @$pb.TagNumber(2) |
| $core.int get nanos => $_getIZ(1); |
| @$pb.TagNumber(2) |
| set nanos($core.int value) => $_setSignedInt32(1, value); |
| @$pb.TagNumber(2) |
| $core.bool hasNanos() => $_has(1); |
| @$pb.TagNumber(2) |
| void clearNanos() => $_clearField(2); |
| |
| /// Converts the [Duration] to [$core.Duration]. |
| /// |
| /// This is a lossy conversion, as [$core.Duration] is limited to [int] |
| /// microseconds and also does not support nanosecond precision. |
| $core.Duration toDart() => $core.Duration( |
| seconds: seconds.toInt(), |
| microseconds: nanos ~/ 1000, |
| ); |
| |
| /// Creates a new instance from [$core.Duration]. |
| static Duration fromDart($core.Duration duration) => Duration() |
| ..seconds = $fixnum.Int64(duration.inSeconds) |
| ..nanos = |
| (duration.inMicroseconds % $core.Duration.microsecondsPerSecond) * 1000; |
| } |
| |
| const $core.bool _omitFieldNames = |
| $core.bool.fromEnvironment('protobuf.omit_field_names'); |
| const $core.bool _omitMessageNames = |
| $core.bool.fromEnvironment('protobuf.omit_message_names'); |