MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / set_begin

Method set_begin

projects/Ruby/proto/fbe.rb:1690–1711  ·  view source on GitHub ↗

Set the optional value (begin phase)

(has_value)

Source from the content-addressed store, hash-verified

1688
1689 # Set the optional value (begin phase)
1690 def set_begin(has_value)
1691 if (@_buffer.offset + fbe_offset + fbe_size) > @_buffer.size
1692 return 0
1693 end
1694
1695 fbe_has_value = has_value ? 1 : 0
1696 write_uint8(fbe_offset, fbe_has_value)
1697 if fbe_has_value == 0
1698 return 0
1699 end
1700
1701 fbe_optional_size = value.fbe_size
1702 fbe_optional_offset = @_buffer.allocate(fbe_optional_size) - @_buffer.offset
1703 if (fbe_optional_offset <= 0) || ((@_buffer.offset + fbe_optional_offset + fbe_optional_size) > @_buffer.size)
1704 return 0
1705 end
1706
1707 write_uint32(fbe_offset + 1, fbe_optional_offset)
1708
1709 @_buffer.shift(fbe_optional_offset)
1710 fbe_optional_offset
1711 end
1712
1713 # Set the optional value (end phase)
1714 def set_end(fbe_begin)

Callers 2

create.rbFile · 0.45

Calls 5

offsetMethod · 0.45
sizeMethod · 0.45
fbe_sizeMethod · 0.45
allocateMethod · 0.45
shiftMethod · 0.45

Tested by 1