Skip to content

Commit e3d01ea

Browse files
author
Pouya Yarandi
committed
Fix comments
1 parent 702679b commit e3d01ea

File tree

3 files changed

+33
-43
lines changed

3 files changed

+33
-43
lines changed

Sources/SwiftProtobuf/Google_Protobuf_FieldMask+Extensions.swift

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ extension Google_Protobuf_FieldMask {
282282
public func intersect(
283283
_ mask: Google_Protobuf_FieldMask
284284
) -> Google_Protobuf_FieldMask {
285-
let set = mask.pathsSet
285+
let set = Set<String>(mask.paths)
286286
var paths: [String] = []
287287
var buffer = Set<String>()
288288
for path in self.paths where set.contains(path) && !buffer.contains(path) {
@@ -302,7 +302,7 @@ extension Google_Protobuf_FieldMask {
302302
public func subtract(
303303
_ mask: Google_Protobuf_FieldMask
304304
) -> Google_Protobuf_FieldMask {
305-
let set = mask.pathsSet
305+
let set = Set<String>(mask.paths)
306306
var paths: [String] = []
307307
var buffer = Set<String>()
308308
for path in self.paths where !set.contains(path) && !buffer.contains(path) {
@@ -329,11 +329,6 @@ extension Google_Protobuf_FieldMask {
329329
}
330330
return false
331331
}
332-
333-
// Set containing paths of FieldMask
334-
private var pathsSet: Set<String> {
335-
.init(paths)
336-
}
337332
}
338333

339334
extension Google_Protobuf_FieldMask {

Sources/SwiftProtobuf/Message+FieldMask.swift

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ extension Message {
6868
/// - source: Message that should be merged to the original one.
6969
/// - fieldMask: FieldMask specifies which fields should be merged.
7070
public mutating func merge(
71-
with source: Self,
71+
from source: Self,
7272
fieldMask: Google_Protobuf_FieldMask,
7373
mergeOption: Google_Protobuf_FieldMask.MergeOptions = .init()
7474
) throws {
@@ -97,7 +97,7 @@ extension Message where Self: Equatable, Self: _ProtoNameProviding {
9797
/// - Returns: Boolean determines if the message is modified
9898
@discardableResult
9999
public mutating func trim(
100-
fieldMask: Google_Protobuf_FieldMask
100+
keeping fieldMask: Google_Protobuf_FieldMask
101101
) -> Bool {
102102
if !fieldMask.isValid(for: Self.self) {
103103
return false
@@ -107,7 +107,7 @@ extension Message where Self: Equatable, Self: _ProtoNameProviding {
107107
}
108108
var tmp = Self(removingAllFieldsOf: self)
109109
do {
110-
try tmp.merge(with: self, fieldMask: fieldMask)
110+
try tmp.merge(from: self, fieldMask: fieldMask)
111111
let changed = tmp != self
112112
self = tmp
113113
return changed
@@ -119,19 +119,14 @@ extension Message where Self: Equatable, Self: _ProtoNameProviding {
119119

120120
private extension Message {
121121
init(removingAllFieldsOf message: Self) {
122-
if let type = Self.self as? any ExtensibleMessage.Type,
122+
let newMessage: Self = .init()
123+
if var newExtensible = newMessage as? any ExtensibleMessage,
123124
let extensible = message as? any ExtensibleMessage {
124-
self = type.init(extensionsOf: extensible) as? Self ?? .init()
125+
newExtensible._protobuf_extensionFieldValues = extensible._protobuf_extensionFieldValues
126+
self = newExtensible as? Self ?? newMessage
125127
} else {
126-
self = .init()
128+
self = newMessage
127129
}
128130
self.unknownFields = message.unknownFields
129131
}
130132
}
131-
132-
private extension Message where Self: ExtensibleMessage {
133-
init(extensionsOf message: any ExtensibleMessage) {
134-
self.init()
135-
_protobuf_extensionFieldValues = message._protobuf_extensionFieldValues
136-
}
137-
}

Tests/SwiftProtobufTests/Test_FieldMask.swift

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,12 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
124124
}
125125

126126
// Checks nested message merge
127-
try message.merge(with: secondMessage, fieldMask: .init(protoPaths: "optional_nested_message.bb"))
127+
try message.merge(from: secondMessage, fieldMask: .init(protoPaths: "optional_nested_message.bb"))
128128
XCTAssertEqual(message.optionalInt32, 1)
129129
XCTAssertEqual(message.optionalNestedMessage.bb, 3)
130130

131131
// Checks primitive type merge
132-
try message.merge(with: secondMessage, fieldMask: .init(protoPaths: "optional_int32"))
132+
try message.merge(from: secondMessage, fieldMask: .init(protoPaths: "optional_int32"))
133133
XCTAssertEqual(message.optionalInt32, 2)
134134
XCTAssertEqual(message.optionalNestedMessage.bb, 3)
135135
}
@@ -147,13 +147,13 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
147147
let fieldMask = Google_Protobuf_FieldMask(protoPaths: ["repeated_int32"])
148148

149149
// Checks without replacing repeated fields
150-
try message.merge(with: secondMessage, fieldMask: fieldMask)
150+
try message.merge(from: secondMessage, fieldMask: fieldMask)
151151
XCTAssertEqual(message.repeatedInt32, [1, 2, 3, 4])
152152

153153
// Checks with replacing repeated fields
154154
var options = Google_Protobuf_FieldMask.MergeOptions()
155155
options.replaceRepeatedFields = true
156-
try message.merge(with: secondMessage, fieldMask: fieldMask, mergeOption: options)
156+
try message.merge(from: secondMessage, fieldMask: fieldMask, mergeOption: options)
157157
XCTAssertEqual(message.repeatedInt32, [3, 4])
158158
}
159159

@@ -170,13 +170,13 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
170170
let fieldMask = Google_Protobuf_FieldMask(protoPaths: ["map_int32_string"])
171171

172172
// Checks without replacing repeated fields
173-
try message.merge(with: secondMessage, fieldMask: fieldMask)
173+
try message.merge(from: secondMessage, fieldMask: fieldMask)
174174
XCTAssertEqual(message.mapInt32String, [1: "a", 2: "b"])
175175

176176
// Checks with replacing repeated fields
177177
var options = Google_Protobuf_FieldMask.MergeOptions()
178178
options.replaceRepeatedFields = true
179-
try message.merge(with: secondMessage, fieldMask: fieldMask, mergeOption: options)
179+
try message.merge(from: secondMessage, fieldMask: fieldMask, mergeOption: options)
180180
XCTAssertEqual(message.mapInt32String, [2: "b"])
181181
}
182182

@@ -190,21 +190,21 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
190190
}
191191

192192
// Checks trim to be successful.
193-
let r1 = message.trim(fieldMask: .init(protoPaths: "optional_nested_message.bb"))
193+
let r1 = message.trim(keeping: .init(protoPaths: "optional_nested_message.bb"))
194194
XCTAssertTrue(r1)
195195
XCTAssertEqual(message.optionalInt32, 0)
196196
XCTAssertEqual(message.optionalNestedMessage.bb, 2)
197197

198198
// Checks trim should do nothing with an empty fieldMask.
199-
let r2 = message.trim(fieldMask: .init())
199+
let r2 = message.trim(keeping: .init())
200200
XCTAssertFalse(r2)
201201

202202
// Checks trim should return false if nothing has been changed.
203-
let r3 = message.trim(fieldMask: .init(protoPaths: "optional_nested_message.bb"))
203+
let r3 = message.trim(keeping: .init(protoPaths: "optional_nested_message.bb"))
204204
XCTAssertFalse(r3)
205205

206206
// Checks trim to be unsuccessful with an invalid fieldMask.
207-
let r4 = message.trim(fieldMask: .init(protoPaths: "invalid_path"))
207+
let r4 = message.trim(keeping: .init(protoPaths: "invalid_path"))
208208
XCTAssertFalse(r4)
209209
}
210210

@@ -216,13 +216,13 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
216216
let mask = Google_Protobuf_FieldMask(protoPaths: ["singular_string"])
217217

218218
// Checks trim should retain extensions while removes other fields.
219-
let r1 = message.trim(fieldMask: mask)
219+
let r1 = message.trim(keeping: mask)
220220
XCTAssertTrue(r1)
221221
XCTAssertEqual(message.SwiftProtoTesting_Fuzz_singularInt32Ext, .init(1))
222222
XCTAssertEqual(message.singularInt32, .init(0))
223223

224224
// Checks trim should do nothing (fields are already removed) and still retain extension fields.
225-
let r2 = message.trim(fieldMask: mask)
225+
let r2 = message.trim(keeping: mask)
226226
XCTAssertFalse(r2)
227227
XCTAssertEqual(message.SwiftProtoTesting_Fuzz_singularInt32Ext, .init(1))
228228
}
@@ -478,7 +478,7 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
478478
m.mapInt32AnEnum = [1: .one]
479479
m.mapInt32Message = [1: .init()]
480480
}
481-
try m1.merge(with: m2, fieldMask: .init(allFieldsOf: SwiftProtoTesting_Fuzz_Message.self))
481+
try m1.merge(from: m2, fieldMask: .init(allFieldsOf: SwiftProtoTesting_Fuzz_Message.self))
482482
XCTAssertEqual(m1.singularInt32, m2.singularInt32)
483483
XCTAssertEqual(m1.singularInt64, m2.singularInt64)
484484
XCTAssertEqual(m1.singularUint32, m2.singularUint32)
@@ -620,7 +620,7 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
620620
"singular_sfixed32",
621621
"singular_sfixed64"
622622
])
623-
try m1.merge(with: m2, fieldMask: mask)
623+
try m1.merge(from: m2, fieldMask: mask)
624624
XCTAssertEqual(m1.singularInt32, m2.singularInt32)
625625
XCTAssertEqual(m1.singularInt64, m2.singularInt64)
626626
XCTAssertEqual(m1.singularUint32, m2.singularUint32)
@@ -690,7 +690,7 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
690690
m.singularInt32 = 1
691691
}
692692
let m2 = SwiftProtoTesting_Fuzz_Message()
693-
try m1.merge(with: m2, fieldMask: .init(protoPaths: ["singular_int32"]))
693+
try m1.merge(from: m2, fieldMask: .init(protoPaths: ["singular_int32"]))
694694
XCTAssertEqual(m1.singularInt32, m2.singularInt32)
695695
}
696696

@@ -700,7 +700,7 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
700700
m.defaultInt32 = 1
701701
}
702702
let m2 = SwiftProtoTesting_TestAllTypes()
703-
try m1.merge(with: m2, fieldMask: .init(protoPaths: ["default_int32"]))
703+
try m1.merge(from: m2, fieldMask: .init(protoPaths: ["default_int32"]))
704704
XCTAssertEqual(m1.defaultInt32, m2.defaultInt32)
705705
}
706706

@@ -725,7 +725,7 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
725725
m.optionalNestedEnum = .bar
726726
}
727727
let m2 = SwiftProtoTesting_Proto3_TestAllTypes()
728-
try m1.merge(with: m2, fieldMask: .init(protoPaths: [
728+
try m1.merge(from: m2, fieldMask: .init(protoPaths: [
729729
"optional_int32",
730730
"optional_int64",
731731
"optional_double",
@@ -779,9 +779,9 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
779779
}
780780
}
781781
}
782-
try m1.merge(with: m2, fieldMask: .init(protoPaths: ["singular_message.singular_message"]))
782+
try m1.merge(from: m2, fieldMask: .init(protoPaths: ["singular_message.singular_message"]))
783783
XCTAssertEqual(m1.singularMessage.singularMessage.singularInt32, Int32(1))
784-
try m1.merge(with: m3, fieldMask: .init(protoPaths: ["singular_message.singular_message.singular_int32"]))
784+
try m1.merge(from: m3, fieldMask: .init(protoPaths: ["singular_message.singular_message.singular_int32"]))
785785
XCTAssertEqual(m1.singularMessage.singularMessage.singularInt32, Int32(2))
786786
}
787787

@@ -793,7 +793,7 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
793793
_m.groupField = 1
794794
}
795795
}
796-
try m1.merge(with: m2, fieldMask: .init(protoPaths: ["SingularGroup.group_field"]))
796+
try m1.merge(from: m2, fieldMask: .init(protoPaths: ["SingularGroup.group_field"]))
797797
XCTAssertEqual(m1.singularGroup.groupField, m2.singularGroup.groupField)
798798
}
799799

@@ -804,13 +804,13 @@ final class Test_FieldMask: XCTestCase, PBTestHelpers {
804804
m.singularGroup = .with { $0.groupField = 1 }
805805
}
806806
// should do nothing with json path (should not merge)
807-
try m1.merge(with: m2, fieldMask: .with({ $0.paths = ["singulargroup"] }))
807+
try m1.merge(from: m2, fieldMask: .with({ $0.paths = ["singulargroup"] }))
808808
XCTAssertNotEqual(m1.singularGroup, m2.singularGroup)
809809
// should merge with proto path
810-
try m1.merge(with: m2, fieldMask: .with({ $0.paths = ["SingularGroup"] }))
810+
try m1.merge(from: m2, fieldMask: .with({ $0.paths = ["SingularGroup"] }))
811811
XCTAssertEqual(m1.singularGroup, m2.singularGroup)
812812
// should do nothing with json path (do not clear field)
813-
try m1.merge(with: m2, fieldMask: .with({ $0.paths = ["singulargroup"] }))
813+
try m1.merge(from: m2, fieldMask: .with({ $0.paths = ["singulargroup"] }))
814814
XCTAssertEqual(m1.singularGroup, m2.singularGroup)
815815
}
816816
}

0 commit comments

Comments
 (0)