class Bytepack::Varbinary

Constants

DIRECTIVE
LENGTH_TYPE
NULL_INDICATOR

Public Class Methods

convert_input(val) click to toggle source
# File lib/bytepack/basic/varbinary.rb, line 28
def convert_input(val)
  val.to_s.encode("ascii-8bit")
end
pack(val) click to toggle source
# File lib/bytepack/basic/varbinary.rb, line 8
def pack(val)
  if val.nil?
    AnyType.pack(self::NULL_INDICATOR)
  else
    val = convert_input(val)
    self::LENGTH_TYPE.pack(val.bytesize) + val
  end
end
unpack(bytes, offset = 0) click to toggle source
# File lib/bytepack/basic/varbinary.rb, line 17
def unpack(bytes, offset = 0)
  length, offset = *self::LENGTH_TYPE.unpack(bytes, offset)
  case length
  when self::NULL_INDICATOR then [nil, offset]
  when 0 then ["", offset]
  else
    offset, format = *preprocess(bytes, offset, self::DIRECTIVE, length)
    [bytes.unpack1(format), offset]
  end
end