/// /// HybridHaptikaCardiacMirrorSpec_cxx.swift /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. /// https://github.com/mrousavy/nitro /// Copyright © Marc Rousavy @ Margelo /// import NitroModules /** * A class implementation that bridges HybridHaptikaCardiacMirrorSpec over to C++. * In C++, we cannot use Swift protocols - so we need to wrap it in a class to make it strongly defined. * * Also, some Swift types need to be bridged with special handling: * - Enums need to be wrapped in Structs, otherwise they cannot be accessed bi-directionally (Swift bug: https://github.com/swiftlang/swift/issues/75330) * - Other HybridObjects need to be wrapped/unwrapped from the Swift TCxx wrapper * - Throwing methods need to be wrapped with a Result type, as exceptions cannot be propagated to C++ */ open class HybridHaptikaCardiacMirrorSpec_cxx { /** * The Swift <> C++ bridge's namespace (`margelo::nitro::haptika::ppg::bridge::swift`) * from `HaptikaPPG-Swift-Cxx-Bridge.hpp`. * This contains specialized C++ templates, and C++ helper functions that can be accessed from Swift. */ public typealias bridge = margelo.nitro.haptika.ppg.bridge.swift /** * Holds an instance of the `HybridHaptikaCardiacMirrorSpec` Swift protocol. */ private var __implementation: any HybridHaptikaCardiacMirrorSpec /** * Holds a weak pointer to the C++ class that wraps the Swift class. */ private var __cxxPart: bridge.std__weak_ptr_HybridHaptikaCardiacMirrorSpec_ /** * Create a new `HybridHaptikaCardiacMirrorSpec_cxx` that wraps the given `HybridHaptikaCardiacMirrorSpec`. * All properties and methods bridge to C++ types. */ public init(_ implementation: any HybridHaptikaCardiacMirrorSpec) { self.__implementation = implementation self.__cxxPart = .init() /* no base class */ } /** * Get the actual `HybridHaptikaCardiacMirrorSpec` instance this class wraps. */ @inline(__always) public func getHybridHaptikaCardiacMirrorSpec() -> any HybridHaptikaCardiacMirrorSpec { return __implementation } /** * Casts this instance to a retained unsafe raw pointer. * This acquires one additional strong reference on the object! */ public func toUnsafe() -> UnsafeMutableRawPointer { return Unmanaged.passRetained(self).toOpaque() } /** * Casts an unsafe pointer to a `HybridHaptikaCardiacMirrorSpec_cxx`. * The pointer has to be a retained opaque `Unmanaged`. * This removes one strong reference from the object! */ public class func fromUnsafe(_ pointer: UnsafeMutableRawPointer) -> HybridHaptikaCardiacMirrorSpec_cxx { return Unmanaged.fromOpaque(pointer).takeRetainedValue() } /** * Gets (or creates) the C++ part of this Hybrid Object. * The C++ part is a `std::shared_ptr`. */ public func getCxxPart() -> bridge.std__shared_ptr_HybridHaptikaCardiacMirrorSpec_ { let cachedCxxPart = self.__cxxPart.lock() if Bool(fromCxx: cachedCxxPart) { return cachedCxxPart } else { let newCxxPart = bridge.create_std__shared_ptr_HybridHaptikaCardiacMirrorSpec_(self.toUnsafe()) __cxxPart = bridge.weakify_std__shared_ptr_HybridHaptikaCardiacMirrorSpec_(newCxxPart) return newCxxPart } } /** * Get the memory size of the Swift class (plus size of any other allocations) * so the JS VM can properly track it and garbage-collect the JS object if needed. */ @inline(__always) public var memorySize: Int { return MemoryHelper.getSizeOf(self.__implementation) + self.__implementation.memorySize } /** * Compares this object with the given [other] object for reference equality. */ @inline(__always) public func equals(other: HybridHaptikaCardiacMirrorSpec_cxx) -> Bool { return self.__implementation === other.__implementation } /** * Call dispose() on the Swift class. * This _may_ be called manually from JS. */ @inline(__always) public func dispose() { self.__implementation.dispose() } /** * Call toString() on the Swift class. */ @inline(__always) public func toString() -> String { return self.__implementation.toString() } // Properties // Methods @inline(__always) public final func isSupported() -> bridge.Result_bool_ { do { let __result = try self.__implementation.isSupported() let __resultCpp = __result return bridge.create_Result_bool_(__resultCpp) } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_bool_(__exceptionPtr) } } @inline(__always) public final func patternInfo() -> bridge.Result_NativeCardiacMirrorPatternInfo_ { do { let __result = try self.__implementation.patternInfo() let __resultCpp = __result return bridge.create_Result_NativeCardiacMirrorPatternInfo_(__resultCpp) } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_NativeCardiacMirrorPatternInfo_(__exceptionPtr) } } @inline(__always) public final func start(targetBpm: Double) -> bridge.Result_void_ { do { try self.__implementation.start(targetBpm: targetBpm) return bridge.create_Result_void_() } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_void_(__exceptionPtr) } } @inline(__always) public final func pulse() -> bridge.Result_void_ { do { try self.__implementation.pulse() return bridge.create_Result_void_() } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_void_(__exceptionPtr) } } @inline(__always) public final func stop() -> bridge.Result_void_ { do { try self.__implementation.stop() return bridge.create_Result_void_() } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_void_(__exceptionPtr) } } @inline(__always) public final func startWatchSession() -> bridge.Result_void_ { do { try self.__implementation.startWatchSession() return bridge.create_Result_void_() } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_void_(__exceptionPtr) } } @inline(__always) public final func watchReachable() -> bridge.Result_bool_ { do { let __result = try self.__implementation.watchReachable() let __resultCpp = __result return bridge.create_Result_bool_(__resultCpp) } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_bool_(__exceptionPtr) } } @inline(__always) public final func latestHeartbeat() -> bridge.Result_std__optional_NativeCardiacMirrorHeartbeat__ { do { let __result = try self.__implementation.latestHeartbeat() let __resultCpp = { () -> bridge.std__optional_NativeCardiacMirrorHeartbeat_ in if let __unwrappedValue = __result { return bridge.create_std__optional_NativeCardiacMirrorHeartbeat_(__unwrappedValue) } else { return .init() } }() return bridge.create_Result_std__optional_NativeCardiacMirrorHeartbeat__(__resultCpp) } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_std__optional_NativeCardiacMirrorHeartbeat__(__exceptionPtr) } } @inline(__always) public final func playRegulationProtocol(kind: std.string) -> bridge.Result_double_ { do { let __result = try self.__implementation.playRegulationProtocol(kind: String(kind)) let __resultCpp = __result return bridge.create_Result_double_(__resultCpp) } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_double_(__exceptionPtr) } } @inline(__always) public final func stopRegulationProtocol() -> bridge.Result_void_ { do { try self.__implementation.stopRegulationProtocol() return bridge.create_Result_void_() } catch (let __error) { let __exceptionPtr = __error.toCpp() return bridge.create_Result_void_(__exceptionPtr) } } }