module BinData::Base::AutoCallDelayedIO

def initialize_shared_instance

def initialize_shared_instance
  top_level_set(:delayed_ios, [])
  super
end

def num_bytes

def num_bytes
  to_binary_s.size
end

def read(io)

def read(io)
  super(io) { top_level_get(:delayed_ios).each(&:read_now!) }
end

def write(io, *_)

def write(io, *_)
  super(io) { top_level_get(:delayed_ios).each(&:write_now!) }
end