Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
// Protocol Buffers - Google's data interchange format |
|
// Copyright 2024 Google Inc. All rights reserved. |
|
// |
|
// Use of this source code is governed by a BSD-style |
|
// license that can be found in the LICENSE file or at |
|
// https://developers.google.com/open-source/licenses/bsd |
|
|
|
/// Swift specific additions to simplify usage. |
|
extension GPBUnknownField { |
|
|
|
/// The value of the field in a type-safe manner. |
|
public enum Value: Equatable { |
|
case varint(UInt64) |
|
case fixed32(UInt32) |
|
case fixed64(UInt64) |
|
case lengthDelimited(Data) // length prefixed |
|
case group(GPBUnknownFields) // tag delimited |
|
} |
|
|
|
/// The value of the field in a type-safe manner. |
|
/// |
|
/// - Note: This is only valid for non-legacy fields. |
|
public var value: Value { |
|
switch type { |
|
case .varint: |
|
return .varint(varint) |
|
case .fixed32: |
|
return .fixed32(fixed32) |
|
case .fixed64: |
|
return .fixed64(fixed64) |
|
case .lengthDelimited: |
|
return .lengthDelimited(lengthDelimited) |
|
case .group: |
|
return .group(group) |
|
case .legacy: |
|
fatalError("`value` not valid for Legacy fields.") |
|
@unknown default: |
|
fatalError("Internal error: Unknown field type: \(type)") |
|
} |
|
} |
|
|
|
}
|
|
|