Squashed 'third_party/flatbuffers/' changes from d6a8dbd26..338393f85
338393f85 Documentation updates for Optional Scalars (#6014) (#6270)
c27bc2d76 [C++] Add ParseJson(), Parser(Parser&&), update fuzzers (#6284)
bc518a512 Fixed FlexBufferBuilder asserting on duplicate keys
100c59054 Added a few more paths for auto labeler (#6281)
e58c18244 Add --require-explicit-ids to require explicit ids (#6277)
69a8b2a57 idl_gen_json_schema.cpp: Changed generation of array element types (#6253)
25eba6f35 fix typo (#6280)
e1f0f75ba Updated Ms build Action to fix build issue (#6279)
faeb04fbe Add type annotation to unspecified array (#6264)
537212afe [Swift] Adds a format file and reformats the swift project (#6250)
6764f25d9 Adds a fix for enum generation (#6263)
Change-Id: I716bd4d2521fb0a673e50a699cef761e042052b2
git-subtree-dir: third_party/flatbuffers
git-subtree-split: 338393f854eb5ba24761a22cd9316ff5cee4eab0
diff --git a/swift/Sources/FlatBuffers/Mutable.swift b/swift/Sources/FlatBuffers/Mutable.swift
index 90c1d8b..adcaa1f 100644
--- a/swift/Sources/FlatBuffers/Mutable.swift
+++ b/swift/Sources/FlatBuffers/Mutable.swift
@@ -1,67 +1,83 @@
+/*
+ * Copyright 2020 Google Inc. All rights reserved.
+ *
+ * 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.
+ */
+
import Foundation
/// Mutable is a protocol that allows us to mutate Scalar values within the buffer
public protocol Mutable {
- /// makes Flatbuffer accessed within the Protocol
- var bb: ByteBuffer { get }
- /// makes position of the table/struct accessed within the Protocol
- var postion: Int32 { get }
+ /// makes Flatbuffer accessed within the Protocol
+ var bb: ByteBuffer { get }
+ /// makes position of the table/struct accessed within the Protocol
+ var postion: Int32 { get }
}
extension Mutable {
-
- /// Mutates the memory in the buffer, this is only called from the access function of table and structs
- /// - Parameters:
- /// - value: New value to be inserted to the buffer
- /// - index: index of the Element
- func mutate<T: Scalar>(value: T, o: Int32) -> Bool {
- guard o != 0 else { return false }
- bb.write(value: value, index: Int(o), direct: true)
- return true
- }
+
+ /// Mutates the memory in the buffer, this is only called from the access function of table and structs
+ /// - Parameters:
+ /// - value: New value to be inserted to the buffer
+ /// - index: index of the Element
+ func mutate<T: Scalar>(value: T, o: Int32) -> Bool {
+ guard o != 0 else { return false }
+ bb.write(value: value, index: Int(o), direct: true)
+ return true
+ }
}
extension Mutable where Self == Table {
-
- /// Mutates a value by calling mutate with respect to the position in the table
- /// - Parameters:
- /// - value: New value to be inserted to the buffer
- /// - index: index of the Element
- public func mutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
- guard index != 0 else { return false }
- return mutate(value: value, o: index + postion)
- }
-
- /// Directly mutates the element by calling mutate
- ///
- /// Mutates the Element at index ignoring the current position by calling mutate
- /// - Parameters:
- /// - value: New value to be inserted to the buffer
- /// - index: index of the Element
- public func directMutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
- return mutate(value: value, o: index)
- }
+
+ /// Mutates a value by calling mutate with respect to the position in the table
+ /// - Parameters:
+ /// - value: New value to be inserted to the buffer
+ /// - index: index of the Element
+ public func mutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
+ guard index != 0 else { return false }
+ return mutate(value: value, o: index + postion)
+ }
+
+ /// Directly mutates the element by calling mutate
+ ///
+ /// Mutates the Element at index ignoring the current position by calling mutate
+ /// - Parameters:
+ /// - value: New value to be inserted to the buffer
+ /// - index: index of the Element
+ public func directMutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
+ mutate(value: value, o: index)
+ }
}
extension Mutable where Self == Struct {
-
- /// Mutates a value by calling mutate with respect to the position in the struct
- /// - Parameters:
- /// - value: New value to be inserted to the buffer
- /// - index: index of the Element
- public func mutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
- return mutate(value: value, o: index + postion)
- }
-
- /// Directly mutates the element by calling mutate
- ///
- /// Mutates the Element at index ignoring the current position by calling mutate
- /// - Parameters:
- /// - value: New value to be inserted to the buffer
- /// - index: index of the Element
- public func directMutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
- return mutate(value: value, o: index)
- }
+
+ /// Mutates a value by calling mutate with respect to the position in the struct
+ /// - Parameters:
+ /// - value: New value to be inserted to the buffer
+ /// - index: index of the Element
+ public func mutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
+ mutate(value: value, o: index + postion)
+ }
+
+ /// Directly mutates the element by calling mutate
+ ///
+ /// Mutates the Element at index ignoring the current position by calling mutate
+ /// - Parameters:
+ /// - value: New value to be inserted to the buffer
+ /// - index: index of the Element
+ public func directMutate<T: Scalar>(_ value: T, index: Int32) -> Bool {
+ mutate(value: value, o: index)
+ }
}
extension Struct: Mutable {}