# BinData::Struct.new(name: :my_struct, fields: ...)
# array = BinData::Array.new(type: :my_struct)
#
#
# source://bindata//lib/bindata/name.rb#14
module BinData::RegisterNamePlugin
# source://bindata//lib/bindata/name.rb#21
def initialize_shared_instance; end
class << self
# source://bindata//lib/bindata/name.rb#16
def included(base); end
end
end
# A singleton registry of all registered classes.
#
# source://bindata//lib/bindata/registry.rb#133
BinData::RegisteredClasses = T.let(T.unsafe(nil), BinData::Registry)
# This registry contains a register of name -> class mappings.
#
# Numerics (integers and floating point numbers) have an endian property as
# part of their name (e.g. int32be, float_le).
#
# Classes can be looked up based on their full name or an abbreviated +name+
# with +hints+.
#
# There are two hints supported, :endian and :search_prefix.
#
# #lookup("int32", { endian: :big }) will return Int32Be.
#
# #lookup("my_type", { search_prefix: :ns }) will return NsMyType.
#
# Names are stored in under_score_style, not camelCase.
#
# source://bindata//lib/bindata/registry.rb#20
class BinData::Registry
# @return [Registry] a new instance of Registry
#
# source://bindata//lib/bindata/registry.rb#21
def initialize; end
# source://bindata//lib/bindata/registry.rb#38
def lookup(name, hints = T.unsafe(nil)); end
# source://bindata//lib/bindata/registry.rb#25
def register(name, class_to_register); end
# Convert CamelCase +name+ to underscore style.
#
# source://bindata//lib/bindata/registry.rb#50
def underscore_name(name); end
# source://bindata//lib/bindata/registry.rb#34
def unregister(name); end
private
# source://bindata//lib/bindata/registry.rb#95
def name_with_endian(name, endian); end
# source://bindata//lib/bindata/registry.rb#86
def name_with_prefix(name, prefix); end
# source://bindata//lib/bindata/registry.rb#63
def normalize_name(name, hints); end
# source://bindata//lib/bindata/registry.rb#112
def register_dynamic_class(name); end
# @return [Boolean]
#
# source://bindata//lib/bindata/registry.rb#106
def registered?(name); end
# source://bindata//lib/bindata/registry.rb#123
def warn_if_name_is_already_registered(name, class_to_register); end
end
# Rest will consume the input stream from the current position to the end of
# the stream. This will mainly be useful for debugging and developing.
#
# require 'bindata'
#
# class A < BinData::Record
# string :a, read_length: 5
# rest :rest
# end
#
# obj = A.read("abcdefghij")
# obj.a #=> "abcde"
# obj.rest #=" "fghij"
#
# source://bindata//lib/bindata/rest.rb#19
class BinData::Rest < ::BinData::BasePrimitive
private
# source://bindata//lib/bindata/rest.rb#26
def read_and_return_value(io); end
# source://bindata//lib/bindata/rest.rb#30
def sensible_default; end
# source://bindata//lib/bindata/rest.rb#22
def value_to_binary_string(val); end
end
# Resets the stream alignment to the next byte. This is
# only useful when using bit-based primitives.
#
# class MyRec < BinData::Record
# bit4 :a
# resume_byte_alignment
# bit4 :b
# end
#
# MyRec.read("\x12\x34") #=> {"a" => 1, "b" => 3}
#
# source://bindata//lib/bindata/alignment.rb#15
class BinData::ResumeByteAlignment < ::BinData::Base
# source://bindata//lib/bindata/alignment.rb#17
def assign(val); end
# @return [Boolean]
#
# source://bindata//lib/bindata/alignment.rb#16
def clear?; end
# source://bindata//lib/bindata/alignment.rb#19
def do_num_bytes; end
# source://bindata//lib/bindata/alignment.rb#21
def do_read(io); end
# source://bindata//lib/bindata/alignment.rb#25
def do_write(io); end
# source://bindata//lib/bindata/alignment.rb#18
def snapshot; end
end
# ----------------------------------------------------------------------------
#
# source://bindata//lib/bindata/sanitize.rb#149
class BinData::SanitizedBigEndian < ::BinData::SanitizedParameter
# source://bindata//lib/bindata/sanitize.rb#150
def endian; end
end
# ----------------------------------------------------------------------------
#
# source://bindata//lib/bindata/sanitize.rb#124
class BinData::SanitizedChoices < ::BinData::SanitizedParameter
# @return [SanitizedChoices] a new instance of SanitizedChoices
#
# source://bindata//lib/bindata/sanitize.rb#125
def initialize(choices, hints); end
# source://bindata//lib/bindata/sanitize.rb#143
def [](key); end
end
# ----------------------------------------------------------------------------
#
# source://bindata//lib/bindata/sanitize.rb#46
class BinData::SanitizedField < ::BinData::SanitizedParameter
# @return [SanitizedField] a new instance of SanitizedField
#
# source://bindata//lib/bindata/sanitize.rb#47
def initialize(name, field_type, field_params, hints); end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#58
def has_parameter?(param); end
# source://bindata//lib/bindata/sanitize.rb#62
def instantiate(value = T.unsafe(nil), parent = T.unsafe(nil)); end
# Returns the value of attribute name.
#
# source://bindata//lib/bindata/sanitize.rb#52
def name; end
# source://bindata//lib/bindata/sanitize.rb#54
def name_as_sym; end
# Returns the value of attribute prototype.
#
# source://bindata//lib/bindata/sanitize.rb#52
def prototype; end
end
# ----------------------------------------------------------------------------
#
# source://bindata//lib/bindata/sanitize.rb#68
class BinData::SanitizedFields < ::BinData::SanitizedParameter
include ::Enumerable
# @return [SanitizedFields] a new instance of SanitizedFields
#
# source://bindata//lib/bindata/sanitize.rb#71
def initialize(hints, base_fields = T.unsafe(nil)); end
# source://bindata//lib/bindata/sanitize.rb#86
def [](idx); end
# source://bindata//lib/bindata/sanitize.rb#76
def add_field(type, name, params); end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#110
def all_field_names_blank?; end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#118
def any_field_has_parameter?(parameter); end
# source://bindata//lib/bindata/sanitize.rb#98
def each(&block); end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#90
def empty?; end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#106
def field_name?(name); end
# source://bindata//lib/bindata/sanitize.rb#102
def field_names; end
# source://bindata//lib/bindata/sanitize.rb#94
def length; end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#114
def no_field_names_blank?; end
# source://bindata//lib/bindata/sanitize.rb#82
def raw_fields; end
end
# source://bindata//lib/bindata/sanitize.rb#155
class BinData::SanitizedLittleEndian < ::BinData::SanitizedParameter
# source://bindata//lib/bindata/sanitize.rb#156
def endian; end
end
# Subclasses of this are sanitized
#
# source://bindata//lib/bindata/sanitize.rb#6
class BinData::SanitizedParameter; end
# BinData objects are instantiated with parameters to determine their
# behaviour. These parameters must be sanitized to ensure their values
# are valid. When instantiating many objects with identical parameters,
# such as an array of records, there is much duplicated sanitizing.
#
# The purpose of the sanitizing code is to eliminate the duplicated
# validation.
#
# SanitizedParameters is a hash-like collection of parameters. Its purpose
# is to recursively sanitize the parameters of an entire BinData object chain
# at a single time.
#
# source://bindata//lib/bindata/sanitize.rb#174
class BinData::SanitizedParameters < ::Hash
# @return [SanitizedParameters] a new instance of SanitizedParameters
#
# source://bindata//lib/bindata/sanitize.rb#188
def initialize(parameters, the_class, hints); end
# source://bindata//lib/bindata/sanitize.rb#280
def create_sanitized_params(params, the_class); end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#206
def has_at_least_one_of?(*keys); end
def has_parameter?(_arg0); end
# source://bindata//lib/bindata/sanitize.rb#284
def hints; end
# def warn_renamed_parameter(old_key, new_key)
# val = delete(old_key)
# if val
# self[new_key] = val
# Kernel.warn ":#{old_key} has been renamed to :#{new_key} in #{@the_class}. " \
# "Using :#{old_key} is now deprecated and will be removed in the future"
# end
# end
#
# source://bindata//lib/bindata/sanitize.rb#230
def must_be_integer(*keys); end
# source://bindata//lib/bindata/sanitize.rb#244
def rename_parameter(old_key, new_key); end
# source://bindata//lib/bindata/sanitize.rb#274
def sanitize(key, &block); end
# source://bindata//lib/bindata/sanitize.rb#264
def sanitize_choices(key, &block); end
# source://bindata//lib/bindata/sanitize.rb#270
def sanitize_endian(key); end
# source://bindata//lib/bindata/sanitize.rb#256
def sanitize_fields(key, &block); end
# source://bindata//lib/bindata/sanitize.rb#250
def sanitize_object_prototype(key); end
# source://bindata//lib/bindata/sanitize.rb#214
def warn_replacement_parameter(bad_key, suggested_key); end
private
# source://bindata//lib/bindata/sanitize.rb#352
def create_sanitized_choices(choices); end
# source://bindata//lib/bindata/sanitize.rb#340
def create_sanitized_endian(endian); end
# source://bindata//lib/bindata/sanitize.rb#356
def create_sanitized_fields; end
# source://bindata//lib/bindata/sanitize.rb#360
def create_sanitized_object_prototype(obj_type, obj_params); end
# source://bindata//lib/bindata/sanitize.rb#320
def ensure_mandatory_parameters_exist; end
# source://bindata//lib/bindata/sanitize.rb#329
def ensure_mutual_exclusion_of_parameters; end
# source://bindata//lib/bindata/sanitize.rb#305
def ensure_no_nil_values; end
# source://bindata//lib/bindata/sanitize.rb#314
def merge_default_parameters!; end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#301
def needs_sanitizing?(key); end
# source://bindata//lib/bindata/sanitize.rb#291
def sanitize!; end
class << self
# source://bindata//lib/bindata/sanitize.rb#179
def sanitize(parameters, the_class); end
end
end
# Memoized constants
#
# source://bindata//lib/bindata/sanitize.rb#175
BinData::SanitizedParameters::BIG_ENDIAN = T.let(T.unsafe(nil), BinData::SanitizedBigEndian)
# source://bindata//lib/bindata/sanitize.rb#176
BinData::SanitizedParameters::LITTLE_ENDIAN = T.let(T.unsafe(nil), BinData::SanitizedLittleEndian)
# source://bindata//lib/bindata/sanitize.rb#8
class BinData::SanitizedPrototype < ::BinData::SanitizedParameter
# @return [SanitizedPrototype] a new instance of SanitizedPrototype
#
# source://bindata//lib/bindata/sanitize.rb#9
def initialize(obj_type, obj_params, hints); end
# @return [Boolean]
#
# source://bindata//lib/bindata/sanitize.rb#30
def has_parameter?(param); end
# source://bindata//lib/bindata/sanitize.rb#38
def instantiate(value = T.unsafe(nil), parent = T.unsafe(nil)); end
end
# source://bindata//lib/bindata/bits.rb#15
class BinData::Sbit < ::BinData::BasePrimitive
def assign(val); end
def bit_aligned?; end
def do_num_bytes; end
def do_write(io); end
private
def read_and_return_value(io); end
def sensible_default; end
end
# source://bindata//lib/bindata/bits.rb#15
class BinData::SbitLe < ::BinData::BasePrimitive
def assign(val); end
def bit_aligned?; end
def do_num_bytes; end
def do_write(io); end
private
def read_and_return_value(io); end
def sensible_default; end
end
# A Section is a layer on top of a stream that transforms the underlying
# data. This allows BinData to process a stream that has multiple
# encodings. e.g. Some data data is compressed or encrypted.
#
# require 'bindata'
#
# class XorTransform < BinData::IO::Transform
# def initialize(xor)
# super()
# @xor = xor
# end
#
# def read(n)
# chain_read(n).bytes.map { |byte| (byte ^ @xor).chr }.join
# end
#
# def write(data)
# chain_write(data.bytes.map { |byte| (byte ^ @xor).chr }.join)
# end
# end
#
# obj = BinData::Section.new(transform: -> { XorTransform.new(0xff) },
# type: [:string, read_length: 5])
#
# obj.read("\x97\x9A\x93\x93\x90") #=> "hello"
#
#
# == Parameters
#
# Parameters may be provided at initialisation to control the behaviour of
# an object. These params are:
#
# :transform:: A callable that returns a new BinData::IO::Transform.
# :type:: The single type inside the buffer. Use a struct if
# multiple fields are required.
#
# source://bindata//lib/bindata/section.rb#40
class BinData::Section < ::BinData::Base
extend ::BinData::DSLMixin
# source://bindata//lib/bindata/section.rb#56
def assign(val); end
# @return [Boolean]
#
# source://bindata//lib/bindata/section.rb#52
def clear?; end
# source://bindata//lib/bindata/section.rb#84
def do_num_bytes; end
# source://bindata//lib/bindata/section.rb#72
def do_read(io); end
# source://bindata//lib/bindata/section.rb#78
def do_write(io); end
# source://bindata//lib/bindata/section.rb#48
def initialize_instance; end
# source://bindata//lib/bindata/section.rb#68
def method_missing(symbol, *args, &block); end
# source://bindata//lib/bindata/section.rb#60
def snapshot; end
private
# @return [Boolean]
#
# source://bindata//lib/bindata/section.rb#64
def respond_to_missing?(symbol, include_all = T.unsafe(nil)); end
end
# source://bindata//lib/bindata/section.rb#89
class BinData::SectionArgProcessor < ::BinData::BaseArgProcessor
include ::BinData::MultiFieldArgSeparator
# source://bindata//lib/bindata/section.rb#92
def sanitize_parameters!(obj_class, params); end
end
# Skip will skip over bytes from the input stream. If the stream is not
# seekable, then the bytes are consumed and discarded.
#
# When writing, skip will write the appropriate number of zero bytes.
#
# require 'bindata'
#
# class A < BinData::Record
# skip length: 5
# string :a, read_length: 5
# end
#
# obj = A.read("abcdefghij")
# obj.a #=> "fghij"
#
#
# class B < BinData::Record
# skip do
# string read_length: 2, assert: 'ef'
# end
# string :s, read_length: 5
# end
#
# obj = B.read("abcdefghij")
# obj.s #=> "efghi"
#
#
# == Parameters
#
# Skip objects accept all the params that BinData::BasePrimitive
# does, as well as the following:
#
# :length:: The number of bytes to skip.
# :to_abs_offset:: Skips to the given absolute offset.
# :until_valid:: Skips until a given byte pattern is matched.
# This parameter contains a type that will raise
# a BinData::ValidityError unless an acceptable byte
# sequence is found. The type is represented by a
# Symbol, or if the type is to have params
# passed to it, then it should be provided as
# [type_symbol, hash_params].
#
# source://bindata//lib/bindata/skip.rb#47
class BinData::Skip < ::BinData::BasePrimitive
extend ::BinData::DSLMixin
# source://bindata//lib/bindata/skip.rb#56
def initialize_shared_instance; end
private
# source://bindata//lib/bindata/skip.rb#76
def read_and_return_value(io); end
# source://bindata//lib/bindata/skip.rb#87
def sensible_default; end
# source://bindata//lib/bindata/skip.rb#66
def value_to_binary_string(_); end
end
# Logic for the :length parameter
#
# source://bindata//lib/bindata/skip.rb#92
module BinData::Skip::SkipLengthPlugin
# source://bindata//lib/bindata/skip.rb#93
def skip_length; end
end
# Logic for the :to_abs_offset parameter
#
# source://bindata//lib/bindata/skip.rb#99
module BinData::Skip::SkipToAbsOffsetPlugin
# source://bindata//lib/bindata/skip.rb#100
def skip_length; end
end
# Logic for the :until_valid parameter
#
# source://bindata//lib/bindata/skip.rb#106
module BinData::Skip::SkipUntilValidPlugin
# source://bindata//lib/bindata/skip.rb#145
def fast_search_for(obj); end
# If a search object has an +asserted_value+ field then we
# perform a faster search for a valid object.
#
# source://bindata//lib/bindata/skip.rb#155
def fast_search_for_obj(obj); end
# source://bindata//lib/bindata/skip.rb#170
def next_search_index(io, fs); end
# source://bindata//lib/bindata/skip.rb#111
def read_and_return_value(io); end
# source://bindata//lib/bindata/skip.rb#137
def seek_to_pos(pos, io); end
# source://bindata//lib/bindata/skip.rb#107
def skip_length; end
end
# A fast search has a pattern string at a specific offset.
#
# source://bindata//lib/bindata/skip.rb#143
BinData::Skip::SkipUntilValidPlugin::FastSearch = Struct
# source://bindata//lib/bindata/skip.rb#193
class BinData::Skip::SkipUntilValidPlugin::ReadaheadIO < ::BinData::IO::Transform
# source://bindata//lib/bindata/skip.rb#194
def before_transform; end
# source://bindata//lib/bindata/skip.rb#202
def rollback; end
end
# source://bindata//lib/bindata/skip.rb#168
BinData::Skip::SkipUntilValidPlugin::SEARCH_SIZE = T.let(T.unsafe(nil), Integer)
# source://bindata//lib/bindata/skip.rb#209
class BinData::SkipArgProcessor < ::BinData::BaseArgProcessor
# source://bindata//lib/bindata/skip.rb#210
def sanitize_parameters!(obj_class, params); end
end
# A String is a sequence of bytes. This is the same as strings in Ruby 1.8.
# The issue of character encoding is ignored by this class.
#
# require 'bindata'
#
# data = "abcdefghij"
#
# obj = BinData::String.new(read_length: 5)
# obj.read(data)
# obj #=> "abcde"
#
# obj = BinData::String.new(length: 6)
# obj.read(data)
# obj #=> "abcdef"
# obj.assign("abcdefghij")
# obj #=> "abcdef"
# obj.assign("abcd")
# obj #=> "abcd\000\000"
#
# obj = BinData::String.new(length: 6, trim_padding: true)
# obj.assign("abcd")
# obj #=> "abcd"
# obj.to_binary_s #=> "abcd\000\000"
#
# obj = BinData::String.new(length: 6, pad_byte: 'A')
# obj.assign("abcd")
# obj #=> "abcdAA"
# obj.to_binary_s #=> "abcdAA"
#
# == Parameters
#
# String objects accept all the params that BinData::BasePrimitive
# does, as well as the following:
#
# :read_length:: The length in bytes to use when reading a value.
# :length:: The fixed length of the string. If a shorter
# string is set, it will be padded to this length.
# :pad_byte:: The byte to use when padding a string to a
# set length. Valid values are Integers and
# Strings of length 1. "\0" is the default.
# :pad_front:: Signifies that the padding occurs at the front
# of the string rather than the end. Default
# is false.
# :trim_padding:: Boolean, default false. If set, #value will
# return the value with all pad_bytes trimmed
# from the end of the string. The value will
# not be trimmed when writing.
#
# source://bindata//lib/bindata/string.rb#51
class BinData::String < ::BinData::BasePrimitive
# source://bindata//lib/bindata/string.rb#67
def assign(val); end
# source://bindata//lib/bindata/string.rb#59
def initialize_shared_instance; end
# source://bindata//lib/bindata/string.rb#71
def snapshot; end
private
# source://bindata//lib/bindata/string.rb#86
def clamp_to_length(str); end
# source://bindata//lib/bindata/string.rb#116
def read_and_return_value(io); end
# source://bindata//lib/bindata/string.rb#121
def sensible_default; end
# source://bindata//lib/bindata/string.rb#104
def trim_padding(str); end
# source://bindata//lib/bindata/string.rb#112
def value_to_binary_string(val); end
end
# Warns when reading if :value && no :read_length
#
# source://bindata//lib/bindata/string.rb#126
module BinData::String::WarnNoReadLengthPlugin
# source://bindata//lib/bindata/string.rb#127
def read_and_return_value(io); end
end
# source://bindata//lib/bindata/string.rb#134
class BinData::StringArgProcessor < ::BinData::BaseArgProcessor
# source://bindata//lib/bindata/string.rb#135
def sanitize_parameters!(obj_class, params); end
private
# source://bindata//lib/bindata/string.rb#145
def sanitized_pad_byte(byte); end
end
# A BinData::Stringz object is a container for a zero ("\0") terminated
# string.
#
# For convenience, the zero terminator is not necessary when setting the
# value. Likewise, the returned value will not be zero terminated.
#
# require 'bindata'
#
# data = "abcd\x00efgh"
#
# obj = BinData::Stringz.new
# obj.read(data)
# obj.snapshot #=> "abcd"
# obj.num_bytes #=> 5
# obj.to_binary_s #=> "abcd\000"
#
# == Parameters
#
# Stringz objects accept all the params that BinData::BasePrimitive
# does, as well as the following:
#
# :max_length:: The maximum length of the string including the zero
# byte.
#
# source://bindata//lib/bindata/stringz.rb#27
class BinData::Stringz < ::BinData::BasePrimitive
# source://bindata//lib/bindata/stringz.rb#30
def assign(val); end
# source://bindata//lib/bindata/stringz.rb#34
def snapshot; end
private
# source://bindata//lib/bindata/stringz.rb#92
def append_zero_byte_if_needed!(str); end
# source://bindata//lib/bindata/stringz.rb#47
def read_and_return_value(io); end
# source://bindata//lib/bindata/stringz.rb#63
def sensible_default; end
# source://bindata//lib/bindata/stringz.rb#67
def trim_and_zero_terminate(str); end
# source://bindata//lib/bindata/stringz.rb#85
def trim_to!(str, max_length = T.unsafe(nil)); end
# source://bindata//lib/bindata/stringz.rb#81
def truncate_after_first_zero_byte!(str); end
# source://bindata//lib/bindata/stringz.rb#43
def value_to_binary_string(val); end
end
# A Struct is an ordered collection of named data objects.
#
# require 'bindata'
#
# class Tuple < BinData::Record
# int8 :x
# int8 :y
# int8 :z
# end
#
# obj = BinData::Struct.new(hide: :a,
# fields: [ [:int32le, :a],
# [:int16le, :b],
# [:tuple, :s] ])
# obj.field_names =># [:b, :s]
#
#
# == Parameters
#
# Parameters may be provided at initialisation to control the behaviour of
# an object. These params are:
#
# :fields:: An array specifying the fields for this struct.
# Each element of the array is of the form [type, name,
# params]. Type is a symbol representing a registered
# type. Name is the name of this field. Params is an
# optional hash of parameters to pass to this field
# when instantiating it. If name is "" or nil, then
# that field is anonymous and behaves as a hidden field.
# :hide:: A list of the names of fields that are to be hidden
# from the outside world. Hidden fields don't appear
# in #snapshot or #field_names but are still accessible
# by name.
# :endian:: Either :little or :big. This specifies the default
# endian of any numerics in this struct, or in any
# nested data objects.
# :search_prefix:: Allows abbreviated type names. If a type is
# unrecognised, then each prefix is applied until
# a match is found.
#
# == Field Parameters
#
# Fields may have have extra parameters as listed below:
#
# [:onlyif] Used to indicate a data object is optional.
# if +false+, this object will not be included in any
# calls to #read, #write, #num_bytes or #snapshot.
# [:byte_align] This field's rel_offset must be a multiple of
# :byte_align.
#
# source://bindata//lib/bindata/struct.rb#58
class BinData::Struct < ::BinData::Base
# source://bindata//lib/bindata/struct.rb#154
def [](key); end
# source://bindata//lib/bindata/struct.rb#158
def []=(key, value); end
# source://bindata//lib/bindata/struct.rb#102
def assign(val); end
# source://bindata//lib/bindata/struct.rb#94
def clear; end
# @return [Boolean]
#
# source://bindata//lib/bindata/struct.rb#98
def clear?; end
# source://bindata//lib/bindata/struct.rb#128
def debug_name_of(child); end
# source://bindata//lib/bindata/struct.rb#149
def do_num_bytes; end
# source://bindata//lib/bindata/struct.rb#139
def do_read(io); end
# source://bindata//lib/bindata/struct.rb#144
def do_write(io); end
# Calls the given block for each field_name-field_obj pair.
#
# Does not include anonymous or hidden fields unless
# +include_all+ is true.
#
# source://bindata//lib/bindata/struct.rb#170
def each_pair(include_all = T.unsafe(nil)); end
# Returns a list of the names of all fields accessible through this
# object. +include_hidden+ specifies whether to include hidden names
# in the listing.
#
# source://bindata//lib/bindata/struct.rb#119
def field_names(include_hidden = T.unsafe(nil)); end
# has_key? is deprecated
#
# @return [Boolean]
#
# source://bindata//lib/bindata/struct.rb#162
def has_key?(key); end
# source://bindata//lib/bindata/struct.rb#90
def initialize_instance; end
# source://bindata//lib/bindata/struct.rb#82
def initialize_shared_instance; end
# @return [Boolean]
#
# source://bindata//lib/bindata/struct.rb#162
def key?(key); end
# source://bindata//lib/bindata/struct.rb#133
def offset_of(child); end
# source://bindata//lib/bindata/struct.rb#107
def snapshot; end
private
# source://bindata//lib/bindata/struct.rb#247
def as_stringified_hash(val); end
# source://bindata//lib/bindata/struct.rb#236
def assign_fields(val); end
# source://bindata//lib/bindata/struct.rb#221
def base_field_name(name); end
# source://bindata//lib/bindata/struct.rb#187
def define_field_accessors; end
# source://bindata//lib/bindata/struct.rb#194
def define_field_accessors_for(name, index); end
# source://bindata//lib/bindata/struct.rb#209
def find_index_of(obj); end
# source://bindata//lib/bindata/struct.rb#213
def find_obj_for_name(name); end
# @return [Boolean]
#
# source://bindata//lib/bindata/struct.rb#281
def include_obj?(obj); end
# @return [Boolean]
#
# source://bindata//lib/bindata/struct.rb#275
def include_obj_for_io?(obj); end
# source://bindata//lib/bindata/struct.rb#225
def instantiate_all_objs; end
# source://bindata//lib/bindata/struct.rb#229
def instantiate_obj_at(index); end
# source://bindata//lib/bindata/struct.rb#263
def sum_num_bytes_below_index(index); end
# source://bindata//lib/bindata/struct.rb#259
def sum_num_bytes_for_all_fields; end
class << self
# source://bindata//lib/bindata/base.rb#53
def inherited(subclass); end
end
end
# Align fields to a multiple of :byte_align
#
# source://bindata//lib/bindata/struct.rb#301
module BinData::Struct::ByteAlignPlugin
# @return [Boolean]
#
# source://bindata//lib/bindata/struct.rb#361
def align_obj?(obj); end
# source://bindata//lib/bindata/struct.rb#356
def bytes_to_align(obj, rel_offset); end
# source://bindata//lib/bindata/struct.rb#302
def do_read(io); end
# source://bindata//lib/bindata/struct.rb#320
def do_write(io); end
# source://bindata//lib/bindata/struct.rb#338
def sum_num_bytes_below_index(index); end
end
# These reserved words may not be used as field names
#
# source://bindata//lib/bindata/struct.rb#65
BinData::Struct::RESERVED = T.let(T.unsafe(nil), Hash)
# A hash that can be accessed via attributes.
#
# source://bindata//lib/bindata/struct.rb#286
class BinData::Struct::Snapshot < ::Hash
# source://bindata//lib/bindata/struct.rb#287
def []=(key, value); end
# source://bindata//lib/bindata/struct.rb#295
def method_missing(symbol, *args); end
private
# @return [Boolean]
#
# source://bindata//lib/bindata/struct.rb#291
def respond_to_missing?(symbol, include_all = T.unsafe(nil)); end
end
# source://bindata//lib/bindata/struct.rb#367
class BinData::StructArgProcessor < ::BinData::BaseArgProcessor
# source://bindata//lib/bindata/struct.rb#368
def sanitize_parameters!(obj_class, params); end
private
# source://bindata//lib/bindata/struct.rb#420
def ensure_field_names_are_valid(obj_class, field_names); end
# source://bindata//lib/bindata/struct.rb#416
def hidden_field_names(hidden); end
# source://bindata//lib/bindata/struct.rb#378
def sanitize_endian(params); end
# source://bindata//lib/bindata/struct.rb#392
def sanitize_fields(obj_class, params); end
# source://bindata//lib/bindata/struct.rb#403
def sanitize_hide(params); end
# source://bindata//lib/bindata/struct.rb#382
def sanitize_search_prefix(params); end
# source://bindata//lib/bindata/struct.rb#412
def sanitized_field_names(sanitized_fields); end
end
# source://bindata//lib/bindata/trace.rb#47
module BinData::TraceHook
# source://bindata//lib/bindata/trace.rb#55
def turn_off_tracing; end
# source://bindata//lib/bindata/trace.rb#48
def turn_on_tracing; end
end
# source://bindata//lib/bindata/trace.rb#23
class BinData::Tracer
# @return [Tracer] a new instance of Tracer
#
# source://bindata//lib/bindata/trace.rb#24
def initialize(io); end
# source://bindata//lib/bindata/trace.rb#28
def trace(msg); end
# source://bindata//lib/bindata/trace.rb#32
def trace_obj(obj_name, val); end
end
# Unsigned 1 byte integer.
#
# source://bindata//lib/bindata/int.rb#180
class BinData::Uint8 < ::BinData::BasePrimitive
def assign(val); end
def do_num_bytes; end
private
def read_and_return_value(io); end
def sensible_default; end
def value_to_binary_string(val); end
end
# Uint8Array is a specialised type of array that only contains
# bytes (Uint8). It is a faster and more memory efficient version
# of `BinData::Array.new(:type => :uint8)`.
#
# require 'bindata'
#
# obj = BinData::Uint8Array.new(initial_length: 5)
# obj.read("abcdefg") #=> [97, 98, 99, 100, 101]
# obj[2] #=> 99
# obj.collect { |x| x.chr }.join #=> "abcde"
#
# == Parameters
#
# Parameters may be provided at initialisation to control the behaviour of
# an object. These params are:
#
# :initial_length:: The initial length of the array.
# :read_until:: May only have a value of `:eof`. This parameter
# instructs the array to read as much data from
# the stream as possible.
#
# source://bindata//lib/bindata/uint8_array.rb#24
class BinData::Uint8Array < ::BinData::BasePrimitive
private
# source://bindata//lib/bindata/uint8_array.rb#36
def read_and_return_value(io); end
# source://bindata//lib/bindata/uint8_array.rb#46
def sensible_default; end
# source://bindata//lib/bindata/uint8_array.rb#32
def value_to_binary_string(val); end
end
# source://bindata//lib/bindata/uint8_array.rb#51
class BinData::Uint8ArrayArgProcessor < ::BinData::BaseArgProcessor
# source://bindata//lib/bindata/uint8_array.rb#52
def sanitize_parameters!(obj_class, params); end
end
# Raised when #lookup fails.
#
# source://bindata//lib/bindata/registry.rb#3
class BinData::UnRegisteredTypeError < ::StandardError; end
# source://bindata//lib/bindata/version.rb#2
BinData::VERSION = T.let(T.unsafe(nil), String)
# Error raised when unexpected results occur when reading data from IO.
#
# source://bindata//lib/bindata/framework.rb#3
class BinData::ValidityError < ::StandardError; end
# A virtual field is one that is neither read, written nor occupies space in
# the data stream. It is used to make assertions or as a convenient label
# for determining offsets or storing values.
#
# require 'bindata'
#
# class A < BinData::Record
# string :a, read_length: 5
# string :b, read_length: 5
# virtual :c, assert: -> { a == b }
# end
#
# obj = A.read("abcdeabcde")
# obj.a #=> "abcde"
# obj.c.rel_offset #=> 10
#
# obj = A.read("abcdeABCDE") #=> BinData::ValidityError: assertion failed for obj.c
#
# == Parameters
#
# Parameters may be provided at initialisation to control the behaviour of
# an object. These params include those for BinData::Base as well as:
#
# [:assert] Raise an error when reading or assigning if the value
# of this evaluated parameter is false.
# [:value] The virtual object will always have this value.
#
# source://bindata//lib/bindata/virtual.rb#31
class BinData::Virtual < ::BinData::BasePrimitive
# source://bindata//lib/bindata/virtual.rb#36
def do_num_bytes; end
# source://bindata//lib/bindata/virtual.rb#32
def do_read(io); end
# source://bindata//lib/bindata/virtual.rb#34
def do_write(io); end
# source://bindata//lib/bindata/virtual.rb#40
def sensible_default; end
end