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

import NitroModules

/**
 * Represents an instance of `NativeLiveActivityAttributes`, backed by a C++ struct.
 */
public typealias NativeLiveActivityAttributes = margelo.nitro.liveactivitykit.NativeLiveActivityAttributes

public extension NativeLiveActivityAttributes {
  private typealias bridge = margelo.nitro.liveactivitykit.bridge.swift

  /**
   * Create a new instance of `NativeLiveActivityAttributes`.
   */
  init(name: String, extra: Dictionary<String, String>) {
    self.init(std.string(name), { () -> bridge.std__unordered_map_std__string__std__string_ in
      var __map = bridge.create_std__unordered_map_std__string__std__string_(extra.count)
      for (__k, __v) in extra {
        bridge.emplace_std__unordered_map_std__string__std__string_(&__map, std.string(__k), std.string(__v))
      }
      return __map
    }())
  }

  @inline(__always)
  var name: String {
    return String(self.__name)
  }
  
  @inline(__always)
  var extra: Dictionary<String, String> {
    return { () -> Dictionary<String, String> in
      var __dictionary = Dictionary<String, String>(minimumCapacity: self.__extra.size())
      let __keys = bridge.get_std__unordered_map_std__string__std__string__keys(self.__extra)
      for __key in __keys {
        let __value = bridge.get_std__unordered_map_std__string__std__string__value(self.__extra, __key)
        __dictionary[String(__key)] = String(__value)
      }
      return __dictionary
    }()
  }
}
