module Eth::Rlp::Sedes

def big_endian_int

Returns:
  • (Eth::Rlp::Sedes::BigEndianInt) - a big-endian, unsigned integer sedes.
def big_endian_int
  @big_endian_int ||= BigEndianInt.new
end

def binary

Returns:
  • (Eth::Rlp::Sedes::Binary) - a binary sedes.
def binary
  @binary ||= Binary.new
end

def infer(obj)

Raises:
  • (TypeError) - if no appropriate sedes could be found.

Parameters:
  • obj (Object) -- the Ruby object for which to find a sedes object.
def infer(obj)
  return obj.class if sedes? obj.class
  return big_endian_int if obj.is_a?(Integer) && obj >= 0
  return binary if Binary.valid_type? obj
  return List.new(elements: obj.map { |item| infer item }) if Util.list? obj
  raise TypeError, "Did not find sedes handling type #{obj.class.name}"
end

def sedes?(obj)

Returns:
  • (Boolean) - true if it's serializable and deserializable.

Parameters:
  • obj (Object) -- the object to check.
def sedes?(obj)
  obj.respond_to?(:serialize) && obj.respond_to?(:deserialize)
end