// automatically generated by the FlatBuffers compiler, do not modify
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any,
 * @typescript-eslint/no-non-null-assertion */
import {Attacker} from './attacker.js';
import {BookReader} from './book-reader.js';
import {Rapunzel} from './rapunzel.js';
export var Character;
(function(Character) {
Character[Character['NONE'] = 0] = 'NONE';
Character[Character['MuLan'] = 1] = 'MuLan';
Character[Character['Rapunzel'] = 2] = 'Rapunzel';
Character[Character['Belle'] = 3] = 'Belle';
Character[Character['BookFan'] = 4] = 'BookFan';
Character[Character['Other'] = 5] = 'Other';
Character[Character['Unused'] = 6] = 'Unused';
})(Character || (Character = {}));
export function unionToCharacter(type, accessor) {
  switch (Character[type]) {
    case 'NONE':
      return null;
    case 'MuLan':
      return accessor(new Attacker());
    case 'Rapunzel':
      return accessor(new Rapunzel());
    case 'Belle':
      return accessor(new BookReader());
    case 'BookFan':
      return accessor(new BookReader());
    case 'Other':
      return accessor('');
    case 'Unused':
      return accessor('');
    default:
      return null;
  }
}
export function unionListToCharacter(type, accessor, index) {
  switch (Character[type]) {
    case 'NONE':
      return null;
    case 'MuLan':
      return accessor(index, new Attacker());
    case 'Rapunzel':
      return accessor(index, new Rapunzel());
    case 'Belle':
      return accessor(index, new BookReader());
    case 'BookFan':
      return accessor(index, new BookReader());
    case 'Other':
      return accessor(index, '');
    case 'Unused':
      return accessor(index, '');
    default:
      return null;
  }
}
