Class: Borsh::Sizer
Overview
A byte counter for writing Borsh data.
Instance Attribute Summary collapse
-
#bytesize ⇒ Integer
(also: #size)
readonly
Returns the buffer size in bytes.
Class Method Summary collapse
Instance Method Summary collapse
-
#close ⇒ void
Closes the buffer.
-
#closed? ⇒ Boolean
Returns ‘true` if the buffer is closed.
- #initialize {|buffer| ... } ⇒ void constructor
- #reset! ⇒ Integer
-
#write(data) ⇒ Integer
Writes data to the buffer.
Methods included from Writable
#write_array, #write_bool, #write_enum, #write_f32, #write_f64, #write_i128, #write_i16, #write_i32, #write_i64, #write_i8, #write_map, #write_object, #write_option, #write_result, #write_set, #write_string, #write_struct, #write_u128, #write_u16, #write_u32, #write_u64, #write_u8, #write_unit, #write_vector
Constructor Details
#initialize {|buffer| ... } ⇒ void
26 27 28 29 |
# File 'lib/borsh/sizer.rb', line 26 def initialize(&block) self.reset! block.call(self) if block_given? end |
Instance Attribute Details
#bytesize ⇒ Integer (readonly) Also known as: size
Returns the buffer size in bytes.
35 36 37 |
# File 'lib/borsh/sizer.rb', line 35 def bytesize @bytesize end |
Class Method Details
.open {|buffer| ... } ⇒ Integer
15 16 17 18 19 |
# File 'lib/borsh/sizer.rb', line 15 def self.open(&block) buffer = self.new(&block) buffer.close buffer.bytesize end |
Instance Method Details
#close ⇒ void
This method returns an undefined value.
Closes the buffer.
48 |
# File 'lib/borsh/sizer.rb', line 48 def close; @closed ||= true; end |
#closed? ⇒ Boolean
Returns ‘true` if the buffer is closed.
42 |
# File 'lib/borsh/sizer.rb', line 42 def closed?; @closed; end |
#reset! ⇒ Integer
62 63 64 65 66 |
# File 'lib/borsh/sizer.rb', line 62 def reset! result = @bytesize @bytesize, @closed = 0, false result end |
#write(data) ⇒ Integer
Writes data to the buffer.
55 56 57 58 |
# File 'lib/borsh/sizer.rb', line 55 def write(data) raise IOError, "closed stream" if self.closed? @bytesize += data.to_s.bytesize end |