diff options
Diffstat (limited to 'src/server/reader.odin')
| -rw-r--r-- | src/server/reader.odin | 68 |
1 files changed, 32 insertions, 36 deletions
diff --git a/src/server/reader.odin b/src/server/reader.odin index f421d67..a3d5937 100644 --- a/src/server/reader.odin +++ b/src/server/reader.odin @@ -4,61 +4,57 @@ import "core:os" import "core:mem" import "core:strings" -ReaderFn :: proc(rawptr, [] byte) -> (int, int); +ReaderFn :: proc (_: rawptr, _: []byte) -> (int, int); Reader :: struct { - reader_fn: ReaderFn, - reader_context: rawptr, -}; - -make_reader :: proc(reader_fn: ReaderFn, reader_context: rawptr) -> Reader { - return Reader { reader_context = reader_context, reader_fn = reader_fn }; + reader_fn: ReaderFn, + reader_context: rawptr, } +make_reader :: proc (reader_fn: ReaderFn, reader_context: rawptr) -> Reader { + return Reader {reader_context = reader_context, reader_fn = reader_fn}; +} -read_u8 :: proc(reader: ^Reader) -> (u8, bool) { +read_u8 :: proc (reader: ^Reader) -> (u8, bool) { - value : [1] byte; + value: [1]byte; - read, err := reader.reader_fn(reader.reader_context, value[:]); + read, err := reader.reader_fn(reader.reader_context, value[:]); - if(err != 0 || read != 1) { - return 0, false; - } + if (err != 0 || read != 1) { + return 0, false; + } - return value[0], true; + return value[0], true; } -read_until_delimiter :: proc(reader: ^Reader, delimiter: u8, builder: ^strings.Builder) -> bool { +read_until_delimiter :: proc (reader: ^Reader, delimiter: u8, builder: ^strings.Builder) -> bool { - for true { + for true { - value, success := read_u8(reader); + value, success := read_u8(reader); - if(!success) { - return false; - } + if (!success) { + return false; + } - strings.write_byte(builder, value); + strings.write_byte(builder, value); - if(value == delimiter) { - break; - } - } + if (value == delimiter) { + break; + } + } - return true; + return true; } -read_sized :: proc(reader: ^Reader, data: []u8) -> bool { - - read, err := reader.reader_fn(reader.reader_context, data); - - if(err != 0 || read != len(data)) { - return false; - } - - return true; -} +read_sized :: proc (reader: ^Reader, data: []u8) -> bool { + read, err := reader.reader_fn(reader.reader_context, data); + if (err != 0 || read != len(data)) { + return false; + } + return true; +}
\ No newline at end of file |