/// /// HaptikaPPG-Swift-Cxx-Bridge.hpp /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE. /// https://github.com/mrousavy/nitro /// Copyright © Marc Rousavy @ Margelo /// #pragma once // Forward declarations of C++ defined types // Forward declaration of `FingerContactState` to properly resolve imports. namespace margelo::nitro::haptika::ppg { enum class FingerContactState; } // Forward declaration of `HealthMetricType` to properly resolve imports. namespace margelo::nitro::haptika::ppg { enum class HealthMetricType; } // Forward declaration of `HybridFrameSpec` to properly resolve imports. namespace margelo::nitro::camera { class HybridFrameSpec; } // Forward declaration of `HybridHaptikaCardiacMirrorSpec` to properly resolve imports. namespace margelo::nitro::haptika::ppg { class HybridHaptikaCardiacMirrorSpec; } // Forward declaration of `HybridHaptikaHealthKitSpec` to properly resolve imports. namespace margelo::nitro::haptika::ppg { class HybridHaptikaHealthKitSpec; } // Forward declaration of `HybridHaptikaPPGFrameProcessorSpec` to properly resolve imports. namespace margelo::nitro::haptika::ppg { class HybridHaptikaPPGFrameProcessorSpec; } // Forward declaration of `NativeAcceptedBeat` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct NativeAcceptedBeat; } // Forward declaration of `NativeCardiacMirrorHeartbeat` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct NativeCardiacMirrorHeartbeat; } // Forward declaration of `NativeCardiacMirrorPatternInfo` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct NativeCardiacMirrorPatternInfo; } // Forward declaration of `NativeHealthKitContext` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct NativeHealthKitContext; } // Forward declaration of `NativeHealthMetricSample` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct NativeHealthMetricSample; } // Forward declaration of `NativeHeartbeatSeriesSummary` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct NativeHeartbeatSeriesSummary; } // Forward declaration of `NativePPGProcessingResult` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct NativePPGProcessingResult; } // Forward declaration of `PPGFrameUpdate` to properly resolve imports. namespace margelo::nitro::haptika::ppg { struct PPGFrameUpdate; } // Forward declaration of `ThermalState` to properly resolve imports. namespace margelo::nitro::haptika::ppg { enum class ThermalState; } // Forward declarations of Swift defined types // Forward declaration of `HybridFrameSpec_cxx` to properly resolve imports. namespace VisionCamera { class HybridFrameSpec_cxx; } // Forward declaration of `HybridHaptikaCardiacMirrorSpec_cxx` to properly resolve imports. namespace HaptikaPPG { class HybridHaptikaCardiacMirrorSpec_cxx; } // Forward declaration of `HybridHaptikaHealthKitSpec_cxx` to properly resolve imports. namespace HaptikaPPG { class HybridHaptikaHealthKitSpec_cxx; } // Forward declaration of `HybridHaptikaPPGFrameProcessorSpec_cxx` to properly resolve imports. namespace HaptikaPPG { class HybridHaptikaPPGFrameProcessorSpec_cxx; } // Include C++ defined types #include "FingerContactState.hpp" #include "HealthMetricType.hpp" #include "HybridHaptikaCardiacMirrorSpec.hpp" #include "HybridHaptikaHealthKitSpec.hpp" #include "HybridHaptikaPPGFrameProcessorSpec.hpp" #include "NativeAcceptedBeat.hpp" #include "NativeCardiacMirrorHeartbeat.hpp" #include "NativeCardiacMirrorPatternInfo.hpp" #include "NativeHealthKitContext.hpp" #include "NativeHealthMetricSample.hpp" #include "NativeHeartbeatSeriesSummary.hpp" #include "NativePPGProcessingResult.hpp" #include "PPGFrameUpdate.hpp" #include "ThermalState.hpp" #include #include #include #include #include #include #include #include #include #include /** * Contains specialized versions of C++ templated types so they can be accessed from Swift, * as well as helper functions to interact with those C++ types from Swift. */ namespace margelo::nitro::haptika::ppg::bridge::swift { // pragma MARK: std::optional /** * Specialized version of `std::optional`. */ using std__optional_double_ = std::optional; inline std::optional create_std__optional_double_(const double& value) noexcept { return std::optional(value); } inline bool has_value_std__optional_double_(const std::optional& optional) noexcept { return optional.has_value(); } inline double get_std__optional_double_(const std::optional& optional) noexcept { return optional.value(); } // pragma MARK: std::vector /** * Specialized version of `std::vector`. */ using std__vector_NativeAcceptedBeat_ = std::vector; inline std::vector create_std__vector_NativeAcceptedBeat_(size_t size) noexcept { std::vector vector; vector.reserve(size); return vector; } // pragma MARK: std::optional /** * Specialized version of `std::optional`. */ using std__optional_PPGFrameUpdate_ = std::optional; inline std::optional create_std__optional_PPGFrameUpdate_(const PPGFrameUpdate& value) noexcept { return std::optional(value); } inline bool has_value_std__optional_PPGFrameUpdate_(const std::optional& optional) noexcept { return optional.has_value(); } inline PPGFrameUpdate get_std__optional_PPGFrameUpdate_(const std::optional& optional) noexcept { return optional.value(); } // pragma MARK: std::shared_ptr /** * Specialized version of `std::shared_ptr`. */ using std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_ = std::shared_ptr; std::shared_ptr create_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(void* NON_NULL swiftUnsafePointer) noexcept; void* NON_NULL get_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_ cppType); // pragma MARK: std::weak_ptr using std__weak_ptr_margelo__nitro__camera__HybridFrameSpec_ = std::weak_ptr; inline std__weak_ptr_margelo__nitro__camera__HybridFrameSpec_ weakify_std__shared_ptr_margelo__nitro__camera__HybridFrameSpec_(const std::shared_ptr& strong) noexcept { return strong; } // pragma MARK: std::optional /** * Specialized version of `std::optional`. */ using std__optional_std__string_ = std::optional; inline std::optional create_std__optional_std__string_(const std::string& value) noexcept { return std::optional(value); } inline bool has_value_std__optional_std__string_(const std::optional& optional) noexcept { return optional.has_value(); } inline std::string get_std__optional_std__string_(const std::optional& optional) noexcept { return optional.value(); } // pragma MARK: std::vector /** * Specialized version of `std::vector`. */ using std__vector_std__string_ = std::vector; inline std::vector create_std__vector_std__string_(size_t size) noexcept { std::vector vector; vector.reserve(size); return vector; } // pragma MARK: std::shared_ptr /** * Specialized version of `std::shared_ptr`. */ using std__shared_ptr_HybridHaptikaPPGFrameProcessorSpec_ = std::shared_ptr; std::shared_ptr create_std__shared_ptr_HybridHaptikaPPGFrameProcessorSpec_(void* NON_NULL swiftUnsafePointer) noexcept; void* NON_NULL get_std__shared_ptr_HybridHaptikaPPGFrameProcessorSpec_(std__shared_ptr_HybridHaptikaPPGFrameProcessorSpec_ cppType); // pragma MARK: std::weak_ptr using std__weak_ptr_HybridHaptikaPPGFrameProcessorSpec_ = std::weak_ptr; inline std__weak_ptr_HybridHaptikaPPGFrameProcessorSpec_ weakify_std__shared_ptr_HybridHaptikaPPGFrameProcessorSpec_(const std::shared_ptr& strong) noexcept { return strong; } // pragma MARK: Result using Result_void_ = Result; inline Result_void_ create_Result_void_() noexcept { return Result::withValue(); } inline Result_void_ create_Result_void_(const std::exception_ptr& error) noexcept { return Result::withError(error); } // pragma MARK: Result> using Result_std__optional_PPGFrameUpdate__ = Result>; inline Result_std__optional_PPGFrameUpdate__ create_Result_std__optional_PPGFrameUpdate__(const std::optional& value) noexcept { return Result>::withValue(value); } inline Result_std__optional_PPGFrameUpdate__ create_Result_std__optional_PPGFrameUpdate__(const std::exception_ptr& error) noexcept { return Result>::withError(error); } // pragma MARK: Result using Result_NativePPGProcessingResult_ = Result; inline Result_NativePPGProcessingResult_ create_Result_NativePPGProcessingResult_(const NativePPGProcessingResult& value) noexcept { return Result::withValue(value); } inline Result_NativePPGProcessingResult_ create_Result_NativePPGProcessingResult_(const std::exception_ptr& error) noexcept { return Result::withError(error); } // pragma MARK: Result using Result_ThermalState_ = Result; inline Result_ThermalState_ create_Result_ThermalState_(ThermalState value) noexcept { return Result::withValue(std::move(value)); } inline Result_ThermalState_ create_Result_ThermalState_(const std::exception_ptr& error) noexcept { return Result::withError(error); } // pragma MARK: std::shared_ptr> /** * Specialized version of `std::shared_ptr>`. */ using std__shared_ptr_Promise_bool__ = std::shared_ptr>; inline std::shared_ptr> create_std__shared_ptr_Promise_bool__() noexcept { return Promise::create(); } inline PromiseHolder wrap_std__shared_ptr_Promise_bool__(std::shared_ptr> promise) noexcept { return PromiseHolder(std::move(promise)); } // pragma MARK: std::function /** * Specialized version of `std::function`. */ using Func_void_bool = std::function; /** * Wrapper class for a `std::function`, this can be used from Swift. */ class Func_void_bool_Wrapper final { public: explicit Func_void_bool_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} inline void call(bool result) const noexcept { _function->operator()(result); } private: std::unique_ptr> _function; } SWIFT_NONCOPYABLE; Func_void_bool create_Func_void_bool(void* NON_NULL swiftClosureWrapper) noexcept; inline Func_void_bool_Wrapper wrap_Func_void_bool(Func_void_bool value) noexcept { return Func_void_bool_Wrapper(std::move(value)); } // pragma MARK: std::function /** * Specialized version of `std::function`. */ using Func_void_std__exception_ptr = std::function; /** * Wrapper class for a `std::function`, this can be used from Swift. */ class Func_void_std__exception_ptr_Wrapper final { public: explicit Func_void_std__exception_ptr_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} inline void call(std::exception_ptr error) const noexcept { _function->operator()(error); } private: std::unique_ptr> _function; } SWIFT_NONCOPYABLE; Func_void_std__exception_ptr create_Func_void_std__exception_ptr(void* NON_NULL swiftClosureWrapper) noexcept; inline Func_void_std__exception_ptr_Wrapper wrap_Func_void_std__exception_ptr(Func_void_std__exception_ptr value) noexcept { return Func_void_std__exception_ptr_Wrapper(std::move(value)); } // pragma MARK: std::optional /** * Specialized version of `std::optional`. */ using std__optional_NativeHealthMetricSample_ = std::optional; inline std::optional create_std__optional_NativeHealthMetricSample_(const NativeHealthMetricSample& value) noexcept { return std::optional(value); } inline bool has_value_std__optional_NativeHealthMetricSample_(const std::optional& optional) noexcept { return optional.has_value(); } inline NativeHealthMetricSample get_std__optional_NativeHealthMetricSample_(const std::optional& optional) noexcept { return optional.value(); } // pragma MARK: std::vector /** * Specialized version of `std::vector`. */ using std__vector_NativeHealthMetricSample_ = std::vector; inline std::vector create_std__vector_NativeHealthMetricSample_(size_t size) noexcept { std::vector vector; vector.reserve(size); return vector; } // pragma MARK: std::shared_ptr> /** * Specialized version of `std::shared_ptr>`. */ using std__shared_ptr_Promise_NativeHealthKitContext__ = std::shared_ptr>; inline std::shared_ptr> create_std__shared_ptr_Promise_NativeHealthKitContext__() noexcept { return Promise::create(); } inline PromiseHolder wrap_std__shared_ptr_Promise_NativeHealthKitContext__(std::shared_ptr> promise) noexcept { return PromiseHolder(std::move(promise)); } // pragma MARK: std::function /** * Specialized version of `std::function`. */ using Func_void_NativeHealthKitContext = std::function; /** * Wrapper class for a `std::function`, this can be used from Swift. */ class Func_void_NativeHealthKitContext_Wrapper final { public: explicit Func_void_NativeHealthKitContext_Wrapper(std::function&& func): _function(std::make_unique>(std::move(func))) {} inline void call(NativeHealthKitContext result) const noexcept { _function->operator()(result); } private: std::unique_ptr> _function; } SWIFT_NONCOPYABLE; Func_void_NativeHealthKitContext create_Func_void_NativeHealthKitContext(void* NON_NULL swiftClosureWrapper) noexcept; inline Func_void_NativeHealthKitContext_Wrapper wrap_Func_void_NativeHealthKitContext(Func_void_NativeHealthKitContext value) noexcept { return Func_void_NativeHealthKitContext_Wrapper(std::move(value)); } // pragma MARK: std::vector /** * Specialized version of `std::vector`. */ using std__vector_double_ = std::vector; inline std::vector create_std__vector_double_(size_t size) noexcept { std::vector vector; vector.reserve(size); return vector; } // pragma MARK: std::optional /** * Specialized version of `std::optional`. */ using std__optional_NativeHeartbeatSeriesSummary_ = std::optional; inline std::optional create_std__optional_NativeHeartbeatSeriesSummary_(const NativeHeartbeatSeriesSummary& value) noexcept { return std::optional(value); } inline bool has_value_std__optional_NativeHeartbeatSeriesSummary_(const std::optional& optional) noexcept { return optional.has_value(); } inline NativeHeartbeatSeriesSummary get_std__optional_NativeHeartbeatSeriesSummary_(const std::optional& optional) noexcept { return optional.value(); } // pragma MARK: std::shared_ptr>> /** * Specialized version of `std::shared_ptr>>`. */ using std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary___ = std::shared_ptr>>; inline std::shared_ptr>> create_std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary___() noexcept { return Promise>::create(); } inline PromiseHolder> wrap_std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary___(std::shared_ptr>> promise) noexcept { return PromiseHolder>(std::move(promise)); } // pragma MARK: std::function& /* result */)> /** * Specialized version of `std::function&)>`. */ using Func_void_std__optional_NativeHeartbeatSeriesSummary_ = std::function& /* result */)>; /** * Wrapper class for a `std::function& / * result * /)>`, this can be used from Swift. */ class Func_void_std__optional_NativeHeartbeatSeriesSummary__Wrapper final { public: explicit Func_void_std__optional_NativeHeartbeatSeriesSummary__Wrapper(std::function& /* result */)>&& func): _function(std::make_unique& /* result */)>>(std::move(func))) {} inline void call(std::optional result) const noexcept { _function->operator()(result); } private: std::unique_ptr& /* result */)>> _function; } SWIFT_NONCOPYABLE; Func_void_std__optional_NativeHeartbeatSeriesSummary_ create_Func_void_std__optional_NativeHeartbeatSeriesSummary_(void* NON_NULL swiftClosureWrapper) noexcept; inline Func_void_std__optional_NativeHeartbeatSeriesSummary__Wrapper wrap_Func_void_std__optional_NativeHeartbeatSeriesSummary_(Func_void_std__optional_NativeHeartbeatSeriesSummary_ value) noexcept { return Func_void_std__optional_NativeHeartbeatSeriesSummary__Wrapper(std::move(value)); } // pragma MARK: std::shared_ptr /** * Specialized version of `std::shared_ptr`. */ using std__shared_ptr_HybridHaptikaHealthKitSpec_ = std::shared_ptr; std::shared_ptr create_std__shared_ptr_HybridHaptikaHealthKitSpec_(void* NON_NULL swiftUnsafePointer) noexcept; void* NON_NULL get_std__shared_ptr_HybridHaptikaHealthKitSpec_(std__shared_ptr_HybridHaptikaHealthKitSpec_ cppType); // pragma MARK: std::weak_ptr using std__weak_ptr_HybridHaptikaHealthKitSpec_ = std::weak_ptr; inline std__weak_ptr_HybridHaptikaHealthKitSpec_ weakify_std__shared_ptr_HybridHaptikaHealthKitSpec_(const std::shared_ptr& strong) noexcept { return strong; } // pragma MARK: Result using Result_bool_ = Result; inline Result_bool_ create_Result_bool_(bool value) noexcept { return Result::withValue(std::move(value)); } inline Result_bool_ create_Result_bool_(const std::exception_ptr& error) noexcept { return Result::withError(error); } // pragma MARK: Result>> using Result_std__shared_ptr_Promise_bool___ = Result>>; inline Result_std__shared_ptr_Promise_bool___ create_Result_std__shared_ptr_Promise_bool___(const std::shared_ptr>& value) noexcept { return Result>>::withValue(value); } inline Result_std__shared_ptr_Promise_bool___ create_Result_std__shared_ptr_Promise_bool___(const std::exception_ptr& error) noexcept { return Result>>::withError(error); } // pragma MARK: Result>> using Result_std__shared_ptr_Promise_NativeHealthKitContext___ = Result>>; inline Result_std__shared_ptr_Promise_NativeHealthKitContext___ create_Result_std__shared_ptr_Promise_NativeHealthKitContext___(const std::shared_ptr>& value) noexcept { return Result>>::withValue(value); } inline Result_std__shared_ptr_Promise_NativeHealthKitContext___ create_Result_std__shared_ptr_Promise_NativeHealthKitContext___(const std::exception_ptr& error) noexcept { return Result>>::withError(error); } // pragma MARK: Result>>> using Result_std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary____ = Result>>>; inline Result_std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary____ create_Result_std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary____(const std::shared_ptr>>& value) noexcept { return Result>>>::withValue(value); } inline Result_std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary____ create_Result_std__shared_ptr_Promise_std__optional_NativeHeartbeatSeriesSummary____(const std::exception_ptr& error) noexcept { return Result>>>::withError(error); } // pragma MARK: std::optional /** * Specialized version of `std::optional`. */ using std__optional_NativeCardiacMirrorHeartbeat_ = std::optional; inline std::optional create_std__optional_NativeCardiacMirrorHeartbeat_(const NativeCardiacMirrorHeartbeat& value) noexcept { return std::optional(value); } inline bool has_value_std__optional_NativeCardiacMirrorHeartbeat_(const std::optional& optional) noexcept { return optional.has_value(); } inline NativeCardiacMirrorHeartbeat get_std__optional_NativeCardiacMirrorHeartbeat_(const std::optional& optional) noexcept { return optional.value(); } // pragma MARK: std::shared_ptr /** * Specialized version of `std::shared_ptr`. */ using std__shared_ptr_HybridHaptikaCardiacMirrorSpec_ = std::shared_ptr; std::shared_ptr create_std__shared_ptr_HybridHaptikaCardiacMirrorSpec_(void* NON_NULL swiftUnsafePointer) noexcept; void* NON_NULL get_std__shared_ptr_HybridHaptikaCardiacMirrorSpec_(std__shared_ptr_HybridHaptikaCardiacMirrorSpec_ cppType); // pragma MARK: std::weak_ptr using std__weak_ptr_HybridHaptikaCardiacMirrorSpec_ = std::weak_ptr; inline std__weak_ptr_HybridHaptikaCardiacMirrorSpec_ weakify_std__shared_ptr_HybridHaptikaCardiacMirrorSpec_(const std::shared_ptr& strong) noexcept { return strong; } // pragma MARK: Result using Result_NativeCardiacMirrorPatternInfo_ = Result; inline Result_NativeCardiacMirrorPatternInfo_ create_Result_NativeCardiacMirrorPatternInfo_(const NativeCardiacMirrorPatternInfo& value) noexcept { return Result::withValue(value); } inline Result_NativeCardiacMirrorPatternInfo_ create_Result_NativeCardiacMirrorPatternInfo_(const std::exception_ptr& error) noexcept { return Result::withError(error); } // pragma MARK: Result> using Result_std__optional_NativeCardiacMirrorHeartbeat__ = Result>; inline Result_std__optional_NativeCardiacMirrorHeartbeat__ create_Result_std__optional_NativeCardiacMirrorHeartbeat__(const std::optional& value) noexcept { return Result>::withValue(value); } inline Result_std__optional_NativeCardiacMirrorHeartbeat__ create_Result_std__optional_NativeCardiacMirrorHeartbeat__(const std::exception_ptr& error) noexcept { return Result>::withError(error); } // pragma MARK: Result using Result_double_ = Result; inline Result_double_ create_Result_double_(double value) noexcept { return Result::withValue(std::move(value)); } inline Result_double_ create_Result_double_(const std::exception_ptr& error) noexcept { return Result::withError(error); } } // namespace margelo::nitro::haptika::ppg::bridge::swift