SDK APIimportARKitimportAVFoundationimportAccelerateimportCombineimportCommonCryptoimportCoreMLimportCoreMediaimportCoreMotionimportFoundationimportMetalimportMetalPerformanceShadersimportSQLite3importUIKitimportVideoToolboximportVisionimport_Concurrencyimportsimd/// Returning all information of Amount estimation and directions how to move/// the device for better estimationpublicprotocolAmountEstimate {/// Scanned Volume estimate in mlvar volumeEstimate: Double? { get }/// Scanned Amount in gramsvar weightEstimate: Double? { get }/// The quality of the estimate (eventually for feedback to the user or/// SDK-based app developer)var estimationQuality: PassioNutritionAISDK.EstimationQuality? { get }/// Hints how to move the device for better estimation.var moveDevice: PassioNutritionAISDK.MoveDirection? { get }/// The Angle in radians from the perpendicular surface.var viewingAngle: Double? { get }}/// Barcode (typealias String) is the string representation of the barcode idpublictypealiasBarcode=String/// The BarcodeCandidate protocol returns the barcode candidate.publicprotocolBarcodeCandidate {/// Passio ID recognized by the modelvar value: String { get }/// boundingBox CGRect representing the predicted bounding box in /// normalized coordinates.var boundingBox: CGRect { get }}/// Implement the BarcodeDetectionDelegate protocol to receive delegate methods/// from the object detection. Barcode detection is optional and initiated when/// starting Object Detection or Classification.publicprotocolBarcodeDetectionDelegate:AnyObject{/// Called when a barcode is detected./// - Parameter barcodes: Array of BarcodeCandidatefuncbarcodeResult(barcodes: [PassioNutritionAISDK.BarcodeCandidate])}/// The ClassificationCandidate protocol returns the classification candidate/// result delegate.publicprotocolClassificationCandidate {/// PassioID recognized by the MLModelvar passioID: PassioNutritionAISDK.PassioID { get }/// Confidence (0.0 to 1.0) of the associated PassioID recognized by the/// MLModelvar confidence: Double { get }}/// The visual food candidatespublicprotocolDetectedCandidate {/// PassioID recognized by the MLModelvar passioID: PassioNutritionAISDK.PassioID { get }/// Confidence (0.0 to 1.0) of the associated PassioID recognized by the/// MLModelvar confidence: Double { get }/// boundingBox CGRect representing the predicted bounding box in/// normalized coordinates.var boundingBox: CGRect { get }/// The image that the detection was performed uponvar croppedImage: UIImage? { get }/// Scanned AmountEstimatevar amountEstimate: PassioNutritionAISDK.AmountEstimate? { get }}publicenumEstimationQuality:String{case goodcase faircase poorcase noEstimation/// Creates a new instance with the specified raw value.////// If there is no value of the type that corresponds with the specified raw/// value, this initializer returns `nil`. For example:////// enum PaperSize: String {/// case A4, A5, Letter, Legal/// }////// print(PaperSize(rawValue: "Legal"))/// // Prints "Optional("PaperSize.Legal")"////// print(PaperSize(rawValue: "Tabloid"))/// // Prints "nil"////// - Parameter rawValue: The raw value to use for the new instance.publicinit?(rawValue: String)/// The raw type that can be used to represent all values of the conforming/// type.////// Every distinct value of the conforming type has a corresponding unique/// value of the `RawValue` type, but there may be values of the `RawValue`/// type that don't have a corresponding value of the conforming type.publictypealiasRawValue=String/// The corresponding value of the raw type.////// A new instance initialized with `rawValue` will be equivalent to this/// instance. For example:////// enum PaperSize: String {/// case A4, A5, Letter, Legal/// }////// let selectedSize = PaperSize.Letter/// print(selectedSize.rawValue)/// // Prints "Letter"////// print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)/// // Prints "true"publicvar rawValue: String { get }}extensionEstimationQuality:Equatable{}extensionEstimationQuality:Hashable{}extensionEstimationQuality:RawRepresentable{}publictypealiasFileLocalURL= URLpublictypealiasFileName=String/// The FoodCandidates protocol returns all four potential candidates. If/// FoodDetectionConfiguration is not set only visual candidates will be/// returned.publicprotocolFoodCandidates {/// The visual candidates returned from the recognitionvar detectedCandidates: [PassioNutritionAISDK.DetectedCandidate] { get }/// The Barcode candidates if availablevar barcodeCandidates: [PassioNutritionAISDK.BarcodeCandidate]? { get }/// The packaged food candidates if availablevar packagedFoodCandidates: [PassioNutritionAISDK.PackagedFoodCandidate]? { get }}/// FoodDetectionConfiguration is needed to configure food detectionpublicstructFoodDetectionConfiguration {/// Only set to false if you don't want to use the ML Models to detect food.publicvar detectVisual: Bool/// Select the right Volume Detection Modepublicvar volumeDetectionMode: PassioNutritionAISDK.VolumeDetectionMode/// Set to true for detecting barcodespublicvar detectBarcodes: Bool/// Set to true for detecting packaged foodspublicvar detectPackagedFood: Bool/// Detect and decipher the Nutrition Facts labelpublicvar detectNutritionFacts: Bool/// Change this if you would like to control the resolution of the image/// you get back in the delegate. Changing this value will not change the/// visual recognition results.publicvar sessionPreset: AVCaptureSession.Preset/// The frequency of sending images for the recognition models. The default/// is set to two per second. Increasing this value will require more/// resources from the device.publicvar framesPerSecond: PassioNutritionAISDK.PassioNutritionAI.FramesPerSecondpublicinit(detectVisual: Bool=true, volumeDetectionMode: PassioNutritionAISDK.VolumeDetectionMode = .none, detectBarcodes: Bool=false, detectPackagedFood: Bool=false, nutritionFacts: Bool=false )}/// Implement the FoodRecognitionDelegate protocol to receive delegate methods/// from the FoodRecognitionpublicprotocolFoodRecognitionDelegate:AnyObject{/// Delegate function for food recognition/// - Parameters:/// - candidates: Food candidates/// - image: Image used for detectionfuncrecognitionResults(candidates: PassioNutritionAISDK.FoodCandidates?, image: UIImage?, nutritionFacts: PassioNutritionAISDK.PassioNutritionFacts? )}publicenumIconSize:String{case px90case px180case px360/// Creates a new instance with the specified raw value.////// If there is no value of the type that corresponds with the specified raw/// value, this initializer returns `nil`. For example:////// enum PaperSize: String {/// case A4, A5, Letter, Legal/// }////// print(PaperSize(rawValue: "Legal"))/// // Prints "Optional("PaperSize.Legal")"////// print(PaperSize(rawValue: "Tabloid"))/// // Prints "nil"////// - Parameter rawValue: The raw value to use for the new instance.publicinit?(rawValue: String)/// The raw type that can be used to represent all values of the conforming/// type.////// Every distinct value of the conforming type has a corresponding unique/// value of the `RawValue` type, but there may be values of the `RawValue`/// type that don't have a corresponding value of the conforming type.publictypealiasRawValue=String/// The corresponding value of the raw type.////// A new instance initialized with `rawValue` will be equivalent to this/// instance. For example:////// enum PaperSize: String {/// case A4, A5, Letter, Legal/// }////// let selectedSize = PaperSize.Letter/// print(selectedSize.rawValue)/// // Prints "Letter"////// print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)/// // Prints "true"publicvar rawValue: String { get }}extensionIconSize:Equatable{}extensionIconSize:Hashable{}extensionIconSize:RawRepresentable{}publicstructKetoFood {publiclet passioID: Stringpublicvar color: UIColorpublicstaticvar ketoFoods: [PassioNutritionAISDK.KetoFood] { get }}publicstructKetoMealPlan {publiclet mealTime: PassioNutritionAISDK.MealTimepubliclet ketoFood: [PassioNutritionAISDK.KetoFood]publicstaticvar mealPlans: [PassioNutritionAISDK.KetoMealPlan] { get }}publicstructMealSuggestion {publiclet mealTime: PassioNutritionAISDK.MealTimepubliclet ketoFoods: [PassioNutritionAISDK.KetoFood]publicstaticvar mealSuggestions: [PassioNutritionAISDK.MealSuggestion] { get }}publicenumMealTime {case breakfastcase lunchcase dinnercase snack/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.publicstaticfunc== (a: PassioNutritionAISDK.MealTime, b: PassioNutritionAISDK.MealTime ) ->Bool/// Hashes the essential components of this value by feeding them into the/// given hasher.////// Implement this method to conform to the `Hashable` protocol. The/// components used for hashing must be the same as the components compared/// in your type's `==` operator implementation. Call `hasher.combine(_:)`/// with each of these components.////// - Important: Never call `finalize()` on `hasher`. Doing so may become a/// compile-time error in the future.////// - Parameter hasher: The hasher to use when combining the components/// of this instance.publicfunchash(intohasher: inout Hasher)/// The hash value.////// Hash values are not guaranteed to be equal across different executions/// of your program. Do not save hash values to use during a future execution.////// - Important: `hashValue` is deprecated as a `Hashable` requirement. To/// conform to `Hashable`, implement the `hash(into:)` requirement instead.publicvar hashValue: Int { get }}extensionMealTime:Equatable{}extensionMealTime:Hashable{}publicstructMeasurementIU {publicvar value: Doublepubliclet unit: String}publicenumMoveDirection:String{case awaycase okcase upcase downcase around/// Creates a new instance with the specified raw value.////// If there is no value of the type that corresponds with the specified raw/// value, this initializer returns `nil`. For example:////// enum PaperSize: String {/// case A4, A5, Letter, Legal/// }////// print(PaperSize(rawValue: "Legal"))/// // Prints "Optional("PaperSize.Legal")"////// print(PaperSize(rawValue: "Tabloid"))/// // Prints "nil"////// - Parameter rawValue: The raw value to use for the new instance.publicinit?(rawValue: String)/// The raw type that can be used to represent all values of the conforming/// type.////// Every distinct value of the conforming type has a corresponding unique/// value of the `RawValue` type, but there may be values of the `RawValue`/// type that don't have a corresponding value of the conforming type.publictypealiasRawValue=String/// The corresponding value of the raw type.////// A new instance initialized with `rawValue` will be equivalent to this/// instance. For example:////// enum PaperSize: String {/// case A4, A5, Letter, Legal/// }////// let selectedSize = PaperSize.Letter/// print(selectedSize.rawValue)/// // Prints "Letter"////// print(selectedSize == PaperSize(rawValue: selectedSize.rawValue)!)/// // Prints "true"publicvar rawValue: String { get }}extensionMoveDirection:Equatable{}extensionMoveDirection:Hashable{}extensionMoveDirection:RawRepresentable{}/// The ObjectDetectionCandidate protocol returns the object detection resultpublicprotocolObjectDetectionCandidate:PassioNutritionAISDK.ClassificationCandidate {/// boundingBox CGRect representing the predicted bounding box in/// normalized coordinates.var boundingBox: CGRect { get }}publicprotocolPackagedFoodCandidate {var packagedFoodCode: PassioNutritionAISDK.PackagedFoodCode { get }var confidence: Double { get }}/// packagedFoodCode (typealias String) is the string representation of/// the PackagedFoodCode idpublictypealiasPackagedFoodCode=String/// PassioAlternative is an alternative to a food from the DatabasepublicstructPassioAlternative:Codable, Equatable, Hashable{publiclet passioID: PassioNutritionAISDK.PassioIDpublicvar name: String { get }publiclet quantity: Double?publiclet unitName: String?/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.publicstaticfunc== (a: PassioNutritionAISDK.PassioAlternative, b: PassioNutritionAISDK.PassioAlternative ) ->Bool/// Hashes the essential components of this value by feeding them into the/// given hasher.////// Implement this method to conform to the `Hashable` protocol. The/// components used for hashing must be the same as the components compared/// in your type's `==` operator implementation. Call `hasher.combine(_:)`/// with each of these components.////// - Important: Never call `finalize()` on `hasher`. Doing so may become a/// compile-time error in the future.////// - Parameter hasher: The hasher to use when combining the components/// of this instance.publicfunchash(intohasher: inout Hasher)/// Encodes this value into the given encoder.////// If the value fails to encode anything, `encoder` will encode an empty/// keyed container in its place.////// This function throws an error if any values are invalid for the given/// encoder's format.////// - Parameter encoder: The encoder to write data to.publicfuncencode(toencoder: Encoder) throws/// The hash value.////// Hash values are not guaranteed to be equal across different executions/// of your program. Do not save hash values to use during a future execution.////// - Important: `hashValue` is deprecated as a `Hashable` requirement. To/// conform to `Hashable`, implement the `hash(into:)` requirement instead.publicvar hashValue: Int { get }/// Creates a new instance by decoding from the given decoder.////// This initializer throws an error if reading from the decoder fails, or/// if the data read is corrupted or otherwise invalid.////// - Parameter decoder: The decoder to read data from.publicinit(fromdecoder: Decoder) throws}/// PassioConfiguration is needed configure the SDK with the following options:publicstructPassioConfiguration:Equatable{/// This is the key you have received from Passio. A valid key must be used.publicvar key: String/// If you have chosen to remove the files from the SDK and provide the SDK/// different URLs for the files please use this variable.publicvar filesLocalURLs: [PassioNutritionAISDK.FileLocalURL]?/// If you set this option to true, the SDK will download the models/// relevant for this version from Passio's bucket.publicvar sdkDownloadsModels: Bool/// If you have problems configuring the SDK, set debugMode = 1 to get more/// debugging information.publicvar debugMode: Int/// If you set allowInternetConnection = false without working with Passio/// the SDK will not work. The SDK will not connect to the internet for key/// validations, barcode data and packaged food data.publicvar allowInternetConnection: Bool/// Only use latest models. Don't use models previously installed.publicvar onlyUseLatestModels: Boolpublicinit(key: String)/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.publicstaticfunc== (a: PassioNutritionAISDK.PassioConfiguration, b: PassioNutritionAISDK.PassioConfiguration ) ->Bool}/// PassioFoodItemData contains all the information pertaining to a food item.publicstructPassioFoodItemData:Equatable, Codable {publicvar passioID: PassioNutritionAISDK.PassioID { get }publicvar name: String { get }publicvar selectedQuantity: Double { get }publicvar selectedUnit: String { get }publicvar entityType: PassioNutritionAISDK.PassioIDEntityType { get }publicvar servingUnits: [PassioNutritionAISDK.PassioServingUnit] { get }publicvar servingSizes: [PassioNutritionAISDK.PassioServingSize] { get }publicvar ingredientsDescription: String? { get }publicvar barcode: PassioNutritionAISDK.Barcode? { get }publicvar foodOrigins: [PassioNutritionAISDK.PassioFoodOrigin]? { get }publicvar isOpenFood: Bool { get }publicvar computedWeight: Measurement<UnitMass> { get }publicvar parents: [PassioNutritionAISDK.PassioAlternative]? { get }publicvar parentsPassioID: [PassioNutritionAISDK.PassioID]? { get }publicvar children: [PassioNutritionAISDK.PassioAlternative]? { get }publicvar childrenPassioID: [PassioNutritionAISDK.PassioID]? { get }publicvar siblings: [PassioNutritionAISDK.PassioAlternative]? { get }publicvar siblingsPassioID: [PassioNutritionAISDK.PassioID]? { get }publicvar totalCalories: Measurement<UnitEnergy>? { get }publicvar totalCarbs: Measurement<UnitMass>? { get }publicvar totalFat: Measurement<UnitMass>? { get }publicvar totalProteins: Measurement<UnitMass>? { get }publicvar totalSaturatedFat: Measurement<UnitMass>? { get }publicvar totalTransFat: Measurement<UnitMass>? { get }publicvar totalMonounsaturatedFat: Measurement<UnitMass>? { get }publicvar totalPolyunsaturatedFat: Measurement<UnitMass>? { get }publicvar totalCholesterol: Measurement<UnitMass>? { get }publicvar totalSodium: Measurement<UnitMass>? { get }publicvar totalFibers: Measurement<UnitMass>? { get }publicvar totalSugars: Measurement<UnitMass>? { get }publicvar totalSugarsAdded: Measurement<UnitMass>? { get }publicvar totalVitaminD: Measurement<UnitMass>? { get }publicvar totalCalcium: Measurement<UnitMass>? { get }publicvar totalIron: Measurement<UnitMass>? { get }publicvar totalPotassium: Measurement<UnitMass>? { get }publicvar totalVitaminA: PassioNutritionAISDK.MeasurementIU? { get }publicvar totalVitaminC: Measurement<UnitMass>? { get }publicvar totalAlcohol: Measurement<UnitMass>? { get }publicvar totalSugarAlcohol: Measurement<UnitMass>? { get }publicvar totalVitaminB12Added: Measurement<UnitMass>? { get }publicvar totalVitaminB12: Measurement<UnitMass>? { get }publicvar totalVitaminB6: Measurement<UnitMass>? { get }publicvar totalVitaminE: Measurement<UnitMass>? { get }publicvar totalVitaminEAdded: Measurement<UnitMass>? { get }publicvar totalMagnesium: Measurement<UnitMass>? { get }publicvar totalPhosphorus: Measurement<UnitMass>? { get }publicvar totalIodine: Measurement<UnitMass>? { get }publicvar summary: String { get }publicmutatingfuncsetFoodItemDataServingSize(unit: String, quantity: Double ) ->BoolpublicmutatingfuncsetServingUnitKeepWeight(unitName: String) ->Boolpublicinit(upcProduct: PassioNutritionAISDK.UPCProduct) throws/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.publicstaticfunc== (a: PassioNutritionAISDK.PassioFoodItemData, b: PassioNutritionAISDK.PassioFoodItemData ) ->Bool/// Encodes this value into the given encoder.////// If the value fails to encode anything, `encoder` will encode an empty/// keyed container in its place.////// This function throws an error if any values are invalid for the given/// encoder's format.////// - Parameter encoder: The encoder to write data to.publicfuncencode(toencoder: Encoder) throws/// Creates a new instance by decoding from the given decoder.////// This initializer throws an error if reading from the decoder fails, or/// if the data read is corrupted or otherwise invalid.////// - Parameter decoder: The decoder to read data from.publicinit(fromdecoder: Decoder) throws}publicenumPassioFoodItemDataError:LocalizedError {case noUnitMassInServingSizes/// A localized message describing what error occurred.publicvar errorDescription: String? { get }/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.publicstaticfunc== (a: PassioNutritionAISDK.PassioFoodItemDataError, b: PassioNutritionAISDK.PassioFoodItemDataError ) ->Bool/// Hashes the essential components of this value by feeding them into the/// given hasher.////// Implement this method to conform to the `Hashable` protocol. The/// components used for hashing must be the same as the components compared/// in your type's `==` operator implementation. Call `hasher.combine(_:)`/// with each of these components.////// - Important: Never call `finalize()` on `hasher`. Doing so may become a/// compile-time error in the future.////// - Parameter hasher: The hasher to use when combining the components/// of this instance.publicfunchash(intohasher: inout Hasher)/// The hash value.////// Hash values are not guaranteed to be equal across different executions/// of your program. Do not save hash values to use during a future execution.////// - Important: `hashValue` is deprecated as a `Hashable` requirement. To/// conform to `Hashable`, implement the `hash(into:)` requirement instead.publicvar hashValue: Int { get }}extensionPassioFoodItemDataError:Equatable{}extensionPassioFoodItemDataError:Hashable{}publicstructPassioFoodOrigin:Codable, Equatable{/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.publicstaticfunc== (a: PassioNutritionAISDK.PassioFoodOrigin, b: PassioNutritionAISDK.PassioFoodOrigin ) ->Bool/// Encodes this value into the given encoder.////// If the value fails to encode anything, `encoder` will encode an empty/// keyed container in its place.////// This function throws an error if any values are invalid for the given/// encoder's format.////// - Parameter encoder: The encoder to write data to.publicfuncencode(toencoder: Encoder) throws/// Creates a new instance by decoding from the given decoder.////// This initializer throws an error if reading from the decoder fails, or/// if the data read is corrupted or otherwise invalid.////// - Parameter decoder: The decoder to read data from.publicinit(fromdecoder: Decoder) throws}/// PassioFoodRecipe contains the list of ingredients and their amounts publicstructPassioFoodRecipe:Equatable, Codable {publicvar passioID: PassioNutritionAISDK.PassioID { get }publicvar name: String { get }publicvar servingSizes: [PassioNutritionAISDK.PassioServingSize] { get }publicvar servingUnits: [PassioNutritionAISDK.PassioServingUnit] { get }publicvar selectedUnit: String { get }publicvar selectedQuantity: Double { get }publicvar isOpenFood: Bool { get }publicvar foodItems: [PassioNutritionAISDK.PassioFoodItemData] { get }publicvar computedWeight: Measurement<UnitMass> { get }publicinit(passioID: PassioNutritionAISDK.PassioID, name: String, foodItems: [PassioNutritionAISDK.PassioFoodItemData], selectedUnit: String, selectedQuantity: Double, servingSizes: [PassioNutritionAISDK.PassioServingSize], servingUnits: [PassioNutritionAISDK.PassioServingUnit] )/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.publicstaticfunc== (a: PassioNutritionAISDK.PassioFoodRecipe, b: PassioNutritionAISDK.PassioFoodRecipe ) ->Bool/// Encodes this value into the given encoder.////// If the value fails to encode anything, `encoder` will encode an empty/// keyed container in its place.////// This function throws an error if any values are invalid for the given/// encoder's format.////// - Parameter encoder: The encoder to write data to.publicfuncencode(toencoder: Encoder) throws/// Creates a new instance by decoding from the given decoder.////// This initializer throws an error if reading from the decoder fails, or/// if the data read is corrupted or otherwise invalid.////// - Parameter decoder: The decoder to read data from.publicinit(fromdecoder: Decoder) throws}/// PassioID (typealias String) is used throughout the SDK, food and other/// objects are identified by PassioID. All attributes (names, nutrition etc..)/// are referred to by PassioID.publictypealiasPassioID=StringpublicstructPassioIDAndName {publiclet passioID: PassioNutritionAISDK.PassioIDpubliclet name: Stringpublicinit(passioID: PassioNutritionAISDK.PassioID, name: String)}/// PassioIDAttributes contains all the attributes for a PassioID.publicstructPassioIDAttributes:Equatable, Codable {publicvar passioID: PassioNutritionAISDK.PassioID { get }publicvar name: String { get }publicvar entityType: PassioNutritionAISDK.PassioIDEntityType { get }publicvar parents: [PassioNutritionAISDK.PassioAlternative]? { get }publicvar children: [PassioNutritionAISDK.PassioAlternative]? { get }publicvar siblings: [PassioNutritionAISDK.PassioAlternative]? { get }publicvar passioFoodItemData: PassioNutritionAISDK.PassioFoodItemData? { get }publicvar recipe: PassioNutritionAISDK.PassioFoodRecipe? { get }publicvar isOpenFood: Bool { get }publicinit(passioID: PassioNutritionAISDK.PassioID, name: String, foodItemDataForDefault: PassioNutritionAISDK.PassioFoodItemData?, entityType: PassioNutritionAISDK.PassioIDEntityType = .barcode )/// Returns a Boolean value indicating whether two values are equal.////// Equality is the inverse of inequality. For any values `a` and `b`,/// `a == b` implies that `a != b` is `false`.////// - Parameters:/// - lhs: A value to compare./// - rhs: Another value to compare.