module BinData::BasePrimitive::AssertedValuePlugin
def _value
def _value reading? ? @value : eval_parameter(:asserted_value) end
def assert!
def assert! assert_value(snapshot) end
def assert_value(current_value)
def assert_value(current_value) expected = eval_parameter(:asserted_value, value: current_value) if current_value != expected raise ValidityError, "value is '#{current_value}' but " \ "expected '#{expected}' for #{debug_name}" end end
def asserted_binary_s
value read in, rather than the +:asserted_value+.
Rationale: while reading, +#to_binary_s+ will use the
The asserted value as a binary string.
def asserted_binary_s value_to_binary_string(eval_parameter(:asserted_value)) end
def assign(val)
def assign(val) assert_value(val) super(val) end
def do_read(io) # :nodoc:
def do_read(io) # :nodoc: super(io) assert! end