VeriferOptions.swift (1918B)
1 /* 2 * Copyright 2023 Google Inc. All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #if !os(WASI) 18 import Foundation 19 #else 20 import SwiftOverlayShims 21 #endif 22 23 /// `VerifierOptions` is a set of options to verify a flatbuffer 24 public struct VerifierOptions { 25 26 /// Maximum `Apparent` size if the buffer can be expanded into a DAG tree 27 internal var _maxApparentSize: UOffset 28 29 /// Maximum table count allowed in a buffer 30 internal var _maxTableCount: UOffset 31 32 /// Maximum depth allowed in a buffer 33 internal var _maxDepth: UOffset 34 35 /// Ignoring missing null terminals in strings 36 internal var _ignoreMissingNullTerminators: Bool 37 38 /// initializes the set of options for the verifier 39 /// - Parameters: 40 /// - maxDepth: Maximum depth allowed in a buffer 41 /// - maxTableCount: Maximum table count allowed in a buffer 42 /// - maxApparentSize: Maximum `Apparent` size if the buffer can be expanded into a DAG tree 43 /// - ignoreMissingNullTerminators: Ignoring missing null terminals in strings *Currently not supported in swift* 44 public init( 45 maxDepth: UOffset = 64, 46 maxTableCount: UOffset = 1000000, 47 maxApparentSize: UOffset = 1 << 31, 48 ignoreMissingNullTerminators: Bool = false) 49 { 50 _maxDepth = maxDepth 51 _maxTableCount = maxTableCount 52 _maxApparentSize = maxApparentSize 53 _ignoreMissingNullTerminators = ignoreMissingNullTerminators 54 } 55 56 }