///
/// RNRiveAutolinking.mm
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

#import <Foundation/Foundation.h>
#import <NitroModules/HybridObjectRegistry.hpp>
#import "RNRive-Swift-Cxx-Umbrella.hpp"
#import <type_traits>

#include "HybridRiveFontConfigSpecSwift.hpp"
#include "HybridRiveFileFactorySpecSwift.hpp"
#include "HybridRiveFileSpecSwift.hpp"
#include "HybridRiveViewSpecSwift.hpp"
#include "HybridRiveImageFactorySpecSwift.hpp"
#include "HybridRiveRuntimeSpecSwift.hpp"

@interface RNRiveAutolinking : NSObject
@end

@implementation RNRiveAutolinking

+ (void) load {
  using namespace margelo::nitro;
  using namespace margelo::nitro::rive;

  HybridObjectRegistry::registerHybridObjectConstructor(
    "RiveFontConfig",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRiveFontConfigSpec> hybridObject = RNRive::RNRiveAutolinking::createRiveFontConfig();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "RiveFileFactory",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRiveFileFactorySpec> hybridObject = RNRive::RNRiveAutolinking::createRiveFileFactory();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "RiveFile",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRiveFileSpec> hybridObject = RNRive::RNRiveAutolinking::createRiveFile();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "RiveView",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRiveViewSpec> hybridObject = RNRive::RNRiveAutolinking::createRiveView();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "RiveImageFactory",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRiveImageFactorySpec> hybridObject = RNRive::RNRiveAutolinking::createRiveImageFactory();
      return hybridObject;
    }
  );
  HybridObjectRegistry::registerHybridObjectConstructor(
    "RiveRuntime",
    []() -> std::shared_ptr<HybridObject> {
      std::shared_ptr<HybridRiveRuntimeSpec> hybridObject = RNRive::RNRiveAutolinking::createRiveRuntime();
      return hybridObject;
    }
  );
}

@end
