module Paquito::Struct::ClassMethods
Public Instance Methods
from_pack(packed)
click to toggle source
# File lib/paquito/struct.rb, line 62 def from_pack(packed) values = extract_packed_values(packed, as_hash: @__kw_init__) if @__kw_init__ new(**values) else new(*values) end end
pack_digest()
click to toggle source
# File lib/paquito/struct.rb, line 72 def pack_digest @pack_digest ||= ::Paquito::Struct.digest(members) end
Private Instance Methods
extract_packed_values(packed, as_hash:)
click to toggle source
# File lib/paquito/struct.rb, line 78 def extract_packed_values(packed, as_hash:) digest, *values = packed if pack_digest != digest raise(VersionMismatchError, "#{self} digests do not match") end as_hash ? members.zip(values).to_h : values end