class
BakedFileSystem::StringEncoder
- BakedFileSystem::StringEncoder
- IO
- Reference
- Object
Overview
This class acts as an IO wrapper that encodes a byte stream as content for a string literal in Crystal code.
It works similiar to String.dump_unquoted but operates on bytes instead of
unicode characters and acts as an IO, so it doesn't need to allocate all
data in memory.
Defined in:
loader/string_encoder.crConstructors
Class Method Summary
Instance Method Summary
-
#read(slice : Bytes)
Reads at most slice.size bytes from this
IOinto slice. -
#write(slice : Bytes) : Nil
Encodes binary data as Crystal string literal.
Constructor Detail
Class Method Detail
Instance Method Detail
Reads at most slice.size bytes from this IO into slice.
Returns the number of bytes read, which is 0 if and only if there is no
more data to read (so checking for 0 is the way to detect end of file).
io = IO::Memory.new "hello"
slice = Bytes.new(4)
io.read(slice) # => 4
slice # => Bytes[104, 101, 108, 108]
io.read(slice) # => 1
slice # => Bytes[111, 101, 108, 108]
io.read(slice) # => 0
Encodes binary data as Crystal string literal. Escapes special characters: ", #, , { Converts control characters to escape sequences. Non-printable bytes become hex escapes (\xNN).