diff options
| author | gingerBill <bill@gingerbill.org> | 2023-06-08 16:38:57 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-06-08 16:38:57 +0100 |
| commit | 9ee4b76cd950e5eef9d480831670ae7bcff64775 (patch) | |
| tree | b3dd5c9074cf1c26ff2e169fe2b92c7998ce6e48 /core/io | |
| parent | 3f6775e29b2378d189cca72733cf8953681281e4 (diff) | |
Just make the `io.Reader` etc aliases
Diffstat (limited to 'core/io')
| -rw-r--r-- | core/io/conv.odin | 30 | ||||
| -rw-r--r-- | core/io/io.odin | 57 |
2 files changed, 41 insertions, 46 deletions
diff --git a/core/io/conv.odin b/core/io/conv.odin index 2b1351e18..e3286baca 100644 --- a/core/io/conv.odin +++ b/core/io/conv.odin @@ -1,80 +1,80 @@ package io to_reader :: proc(s: Stream) -> (r: Reader, ok: bool = true) #optional_ok { - r.stream = s + r = s ok = .Read in query(s) return } to_writer :: proc(s: Stream) -> (w: Writer, ok: bool = true) #optional_ok { - w.stream = s + w = s ok = .Write in query(s) return } to_closer :: proc(s: Stream) -> (c: Closer, ok: bool = true) #optional_ok { - c.stream = s + c = s ok = .Close in query(s) return } to_flusher :: proc(s: Stream) -> (f: Flusher, ok: bool = true) #optional_ok { - f.stream = s + f = s ok = .Flush in query(s) return } to_seeker :: proc(s: Stream) -> (seeker: Seeker, ok: bool = true) #optional_ok { - seeker.stream = s + seeker = s ok = .Seek in query(s) return } to_read_writer :: proc(s: Stream) -> (r: Read_Writer, ok: bool = true) #optional_ok { - r.stream = s + r = s ok = query(s) >= {.Read, .Write} return } to_read_closer :: proc(s: Stream) -> (r: Read_Closer, ok: bool = true) #optional_ok { - r.stream = s + r = s ok = query(s) >= {.Read, .Close} return } to_read_write_closer :: proc(s: Stream) -> (r: Read_Write_Closer, ok: bool = true) #optional_ok { - r.stream = s + r = s ok = query(s) >= {.Read, .Write, .Close} return } to_read_write_seeker :: proc(s: Stream) -> (r: Read_Write_Seeker, ok: bool = true) #optional_ok { - r.stream = s + r = s ok = query(s) >= {.Read, .Write, .Seek} return } to_write_flusher :: proc(s: Stream) -> (w: Write_Flusher, ok: bool = true) #optional_ok { - w.stream = s + w = s ok = query(s) >= {.Write, .Flush} return } to_write_flush_closer :: proc(s: Stream) -> (w: Write_Flush_Closer, ok: bool = true) #optional_ok { - w.stream = s + w = s ok = query(s) >= {.Write, .Flush, .Close} return } to_reader_at :: proc(s: Stream) -> (r: Reader_At, ok: bool = true) #optional_ok { - r.stream = s + r = s ok = query(s) >= {.Read_At} return } to_writer_at :: proc(s: Stream) -> (w: Writer_At, ok: bool = true) #optional_ok { - w.stream = s + w = s ok = query(s) >= {.Write_At} return } to_write_closer :: proc(s: Stream) -> (w: Write_Closer, ok: bool = true) #optional_ok { - w.stream = s + w = s ok = query(s) >= {.Write, .Close} return } to_write_seeker :: proc(s: Stream) -> (w: Write_Seeker, ok: bool = true) #optional_ok { - w.stream = s + w = s ok = query(s) >= {.Write, .Seek} return } diff --git a/core/io/io.odin b/core/io/io.odin index 868e16204..566e13c54 100644 --- a/core/io/io.odin +++ b/core/io/io.odin @@ -75,29 +75,29 @@ Stream :: struct { data: rawptr, } -Reader :: struct {using stream: Stream} -Writer :: struct {using stream: Stream} -Closer :: struct {using stream: Stream} -Flusher :: struct {using stream: Stream} -Seeker :: struct {using stream: Stream} +Reader :: Stream +Writer :: Stream +Closer :: Stream +Flusher :: Stream +Seeker :: Stream -Read_Writer :: struct {using stream: Stream} -Read_Closer :: struct {using stream: Stream} -Read_Write_Closer :: struct {using stream: Stream} -Read_Write_Seeker :: struct {using stream: Stream} +Read_Writer :: Stream +Read_Closer :: Stream +Read_Write_Closer :: Stream +Read_Write_Seeker :: Stream -Write_Closer :: struct {using stream: Stream} -Write_Seeker :: struct {using stream: Stream} -Write_Flusher :: struct {using stream: Stream} -Write_Flush_Closer :: struct {using stream: Stream} +Write_Closer :: Stream +Write_Seeker :: Stream +Write_Flusher :: Stream +Write_Flush_Closer :: Stream -Reader_At :: struct {using stream: Stream} -Writer_At :: struct {using stream: Stream} +Reader_At :: Stream +Writer_At :: Stream destroy :: proc(s: Stream) -> (err: Error) { - _ = flush({s}) - _ = close({s}) + _ = flush(s) + _ = close(s) if s.procedure != nil { _, err = s.procedure(s.data, .Destroy, nil, 0, nil) } else { @@ -192,11 +192,10 @@ size :: proc(s: Stream) -> (n: i64, err: Error) { if s.procedure != nil { n, err = s.procedure(s.data, .Size, nil, 0, nil) if err == .Empty { - seeker := Seeker{s} n = 0 - curr := seek(seeker, 0, .Current) or_return - end := seek(seeker, 0, .End) or_return - seek(seeker, curr, .Start) or_return + curr := seek(s, 0, .Current) or_return + end := seek(s, 0, .End) or_return + seek(s, curr, .Start) or_return n = end } } else { @@ -220,11 +219,9 @@ read_at :: proc(r: Reader_At, p: []byte, offset: i64, n_read: ^int = nil) -> (n: if err != .Empty { n = int(n64) } else { - seeker := Seeker{r} - reader := Reader{r} - curr := seek(seeker, offset, .Current) or_return - n, err = read(reader, p) - _, err1 := seek(seeker, curr, .Start) + curr := seek(r, offset, .Current) or_return + n, err = read(r, p) + _, err1 := seek(r, curr, .Start) if err1 != nil && err == nil { err = err1 } @@ -248,11 +245,9 @@ write_at :: proc(w: Writer_At, p: []byte, offset: i64, n_written: ^int = nil) -> if err != .Empty { n = int(n64) } else { - seeker := Seeker{w} - writer := Writer{w} - curr := seek(seeker, offset, .Current) or_return - n, err = write(writer, p) - _, err1 := seek(seeker, curr, .Start) + curr := seek(w, offset, .Current) or_return + n, err = write(w, p) + _, err1 := seek(w, curr, .Start) if err1 != nil && err == nil { err = err1 } |