hunk.code_window:       requireNotNull(viewFactory),
         requireNotNull(viewType),
         props
       )
     inline fun <reified ViewType : View> view(noinline body: (Context) -> ViewType) {
       viewType = ViewType::class.java
       viewFactory = body
     }
  
hunk.labels: keep keep keep keep add keep keep keep keep keep
hunk.after_edit:   /**
      * Defines the factory creating a native view when the module is used as a view.
      */
  
hunk.file_path: packages/expo-modules-core/android/src/main/java/expo/modules/kotlin/views/ViewManagerDefinitionBuilder.kt
hunk.type: add
file: /*
   * Copyright (c) Facebook, Inc. and its affiliates.
   *
   * This source code is licensed under the MIT license found in the
   * LICENSE file in the root directory of this source tree.
   */
  
  #pragma once
  
  #include <memory>
  
  namespace ABI43_0_0facebook {
  namespace ABI43_0_0React {
  
  /*
   * We need this types only to ensure type-safety when we deal with them.
   * Conceptually, they are opaque pointers to some types that derived from those
   * classes.
   *
   * `EventHandler` is managed as a `unique_ptr`, so it must have a *virtual*
   * destructor to allow proper deallocation having only a pointer
   * to the base (`EventHandler`) class.
   */
  struct EventHandler {
    virtual ~EventHandler() = default;
  };
  using UniqueEventHandler = std::unique_ptr<const EventHandler>;
  
  } // namespace ABI43_0_0React
  } // namespace ABI43_0_0facebook
  