lib/pio/type/ether_type.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

require 'bindata'

module Pio
  module Type
    # Ether type
    class EtherType < BinData::Primitive
      endian :big

      uint16 :ether_type

      def set(value)
        self.ether_type = value
      end

      def get
        ether_type
      end

      # This method smells of :reek:UncommunicativeVariableName
      def to_bytes
        byte1 = format('%02x', (self & 0xff00) >> 8)
        byte2 = format('%02x', self & 0xff)
        "0x#{byte1}, 0x#{byte2}"
      end

      def inspect
        Kernel.format '0x%04x', self
      end
    end
  end
end