module Paquito::TypedStruct

To make a T::Struct class serializable, include Paquito::TypedStruct:

class MyStruct < T::Struct
  include Paquito::TypedStruct

  prop :foo, String
  prop :bar, Integer
end

my_struct = MyStruct.new(foo: "foo", bar: 1)
my_struct.as_pack
=> [26450, "foo", 1]

MyStruct.from_pack([26450, "foo", 1])
=> <MyStruct bar=1, foo="foo">

Public Instance Methods

as_pack() click to toggle source
# File lib/paquito/typed_struct.rb, line 28
def as_pack
  decorator = self.class.decorator
  props = decorator.props.keys
  values = props.map { |prop| decorator.get(self, prop) }
  [self.class.pack_digest, *values]
end