module Eth::Rlp::Sedes
def big_endian_int
-
(Eth::Rlp::Sedes::BigEndianInt)
- a big-endian, unsigned integer sedes.
def big_endian_int @big_endian_int ||= BigEndianInt.new end
def binary
-
(Eth::Rlp::Sedes::Binary)
- a binary sedes.
def binary @binary ||= Binary.new end
def infer(obj)
-
(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)
-
(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