def native_field_class_from(type)
case type
when :char, NativeType::INT8
Signed8
when :uchar, NativeType::UINT8
Unsigned8
when :short, NativeType::INT16
Signed16
when :ushort, NativeType::UINT16
Unsigned16
when :long, NativeType::LONG
FFI::Platform::LONG_SIZE == 32 ? Signed32 : Signed64
when :ulong, NativeType::ULONG
FFI::Platform::LONG_SIZE == 32 ? Unsigned32 : Unsigned64
when :int, NativeType::INT32
Signed32
when :uint, NativeType::UINT32
Unsigned32
when :long_long, NativeType::INT64
Signed64
when :ulong_long, NativeType::UINT64
Unsigned64
when :float, NativeType::FLOAT32
FloatField
when :double, NativeType::FLOAT64
DoubleField
when :pointer, NativeType::POINTER
PointerField
when :string, NativeType::STRING
StringField
end
end