# Copyright (c) 2024 Yuki Kimoto
# MIT License

class Packer::Specifier {
  version_from SPVM;

  allow Packer;
  
  private enum {
    TYPE_NONE,
    TYPE_BYTE,
    TYPE_SHORT,
    TYPE_INT,
    TYPE_LONG,
    TYPE_FLOAT,
    TYPE_DOUBLE,
    TYPE_STRING,
    TYPE_HEX_STRING_LOW,
    TYPE_HEX_STRING_HIGH,
  }
  
  private enum {
    ENDIAN_NONE,
    ENDIAN_LITTLE_ENDIAN,
    ENDIAN_BIG_ENDIAN,
  }
  
  # Fields
  has type : int;
  
  has is_numeric_object : int;
  
  has length : int;
  
  has has_wildcard_length : byte;
  
  has endian : int;
}