<?php
namespace nur\data\types;

class KeyType extends AbstractSimpleType {
  const TITLE = "clé d'un tableau";

  const TRIM = false;

  /** @var string description de la valeur */
  const KIND = "key";

  function getClass(): string {
    # on est malheureusement obligé de mettre mixed, mais en réalité, il ne peut
    # y avoir que int et string
    return "mixed";
  }

  function isInstance($value, bool $strict=false): bool {
    return $value === null || is_string($value) || is_int($value);
  }

  function parse(string &$input) {
    return $input;
  }

  function verifixConvert(&$value): bool {
    if (is_string($value) && preg_match('/^-?[0-9]+$/', $value)) {
      $value = intval($value);
    }
    return true;
  }

  function verifixReplaceEmpty(&$value): void {
  }
}
