getAttachment method
Returns the attachment for the specified slot index and name, or NULL.
Implementation
Attachment? getAttachment(int slotIndex, String name) {
  final result = SpineBindings.bindings.spine_skin_get_attachment(_ptr, slotIndex, name.toNativeUtf8().cast<Char>());
  if (result.address == 0) return null;
  final rtti = SpineBindings.bindings.spine_attachment_get_rtti(result);
  final className = SpineBindings.bindings.spine_rtti_get_class_name(rtti).cast<Utf8>().toDartString();
  switch (className) {
    case 'BoundingBoxAttachment':
      final castedPtr = SpineBindings.bindings.spine_attachment_cast_to_bounding_box_attachment(result);
      return BoundingBoxAttachment.fromPointer(castedPtr);
    case 'ClippingAttachment':
      final castedPtr = SpineBindings.bindings.spine_attachment_cast_to_clipping_attachment(result);
      return ClippingAttachment.fromPointer(castedPtr);
    case 'MeshAttachment':
      final castedPtr = SpineBindings.bindings.spine_attachment_cast_to_mesh_attachment(result);
      return MeshAttachment.fromPointer(castedPtr);
    case 'PathAttachment':
      final castedPtr = SpineBindings.bindings.spine_attachment_cast_to_path_attachment(result);
      return PathAttachment.fromPointer(castedPtr);
    case 'PointAttachment':
      final castedPtr = SpineBindings.bindings.spine_attachment_cast_to_point_attachment(result);
      return PointAttachment.fromPointer(castedPtr);
    case 'RegionAttachment':
      final castedPtr = SpineBindings.bindings.spine_attachment_cast_to_region_attachment(result);
      return RegionAttachment.fromPointer(castedPtr);
    default:
      throw UnsupportedError('Unknown concrete type: $className for abstract class Attachment');
  }
}