// generated by bun run generate from the SwiftUI SDK and codegen/catalog.ts.
// edit the generator or catalog, then regenerate.
#ifdef __cplusplus
#import <React/RCTConversions.h>
#import <react/renderer/components/OneNativeSpec/Props.h>
template <typename Item>
inline bool OneNativeMenuItemsEqual(const std::vector<Item> &a, const std::vector<Item> &b) {
  if (a.size() != b.size()) return false;
  for (size_t i = 0; i < a.size(); i++) {
    if (a[i].parentId != b[i].parentId || a[i].type != b[i].type || a[i].id != b[i].id || a[i].title != b[i].title || a[i].systemImage != b[i].systemImage || a[i].role != b[i].role || a[i].disabled != b[i].disabled || a[i].hidden != b[i].hidden || a[i].help != b[i].help || a[i].controlGroupStyle != b[i].controlGroupStyle || a[i].values != b[i].values || a[i].selection != b[i].selection || a[i].menuOrder != b[i].menuOrder || a[i].menuActionDismissBehavior != b[i].menuActionDismissBehavior) return false;
  }
  return true;
}
template <typename Item>
inline NSArray *OneNativeMenuPayload(const std::vector<Item> &items) {
  NSMutableArray *result = [NSMutableArray new];
  for (const auto &item : items) {
    NSMutableArray *values = [NSMutableArray new];
    for (bool value : item.values) [values addObject:@(value)];
    [result addObject:@{
      @"parentId": RCTNSStringFromString(item.parentId),
      @"type": RCTNSStringFromString(item.type),
      @"id": RCTNSStringFromString(item.id),
      @"title": RCTNSStringFromString(item.title),
      @"systemImage": RCTNSStringFromString(item.systemImage),
      @"role": RCTNSStringFromString(item.role),
      @"disabled": @(item.disabled),
      @"hidden": @(item.hidden),
      @"help": RCTNSStringFromString(item.help),
      @"controlGroupStyle": RCTNSStringFromString(item.controlGroupStyle),
      @"values": values,
      @"selection": RCTNSStringFromString(item.selection),
      @"menuOrder": RCTNSStringFromString(item.menuOrder),
      @"menuActionDismissBehavior": RCTNSStringFromString(item.menuActionDismissBehavior)
    }];
  }
  return result;
}
#endif
