damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

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 }