From 8f7b39e95dd4a373300c3c0589a46c957669da95 Mon Sep 17 00:00:00 2001 From: mertcandav Date: Thu, 14 Nov 2024 12:04:20 +0300 Subject: [PATCH] std/io: remove deprecated Scanner --- std/io/scan.jule | 72 ------------------------------------------------ 1 file changed, 72 deletions(-) delete mode 100644 std/io/scan.jule diff --git a/std/io/scan.jule b/std/io/scan.jule deleted file mode 100644 index 1a191d068..000000000 --- a/std/io/scan.jule +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2023-2024 The Jule Programming Language. -// Use of this source code is governed by a BSD 3-Clause -// license that can be found in the LICENSE file. - -use "std/unsafe" - -// Scanner for files or etc. -// Scans bytes line-by-line. -struct Scanner { - mut r: Reader - mut b: []byte -} - -impl Scanner { - const bufferSize = 1 << 10 - - // New &Scanner from Reader. - static fn New(mut r: Reader): &Scanner { - ret &Scanner{ - r: r, - b: make([]byte, 0, Scanner.bufferSize), - } - } -} - -impl Scanner { - fn reset(self) { - self.b = self.b[:0] - } - - // Returns bytes of recent scan. - // Returned slice is mutable copy of buffer. - // The next [Scan] call will write into same internal allocation. - fn Bytes(self): []byte { ret self.b } - - // Returns text from bytes of recent scan. - fn Text(self): str { ret str(self.b) } - - // Scans line from handle via read method. - // Scans bytes until end of the line, line delimiter is not included. - // Reports whether readed byte into buffer. - // Forwards any exceptional. - fn Scan(self)!: bool { - const LINE_DELIMITER = '\n' - - self.reset() - - let mut partBuff: [128]byte - mut part := unsafe::Slice(&partBuff[0], len(partBuff), len(partBuff)) - for { - n := self.r.Read(part) else { error(error) } - if n == 0 { - break - } - if part[n-1] == LINE_DELIMITER { - self.b = append(self.b, part[:n-1]...) - break - } - self.b = append(self.b, part[:n]...) - } - self.b = clearCr(self.b) - ret len(self.b) > 0 - } -} - -// Clear last carriage return from buff if exist. -fn clearCr(mut buf: []byte): []byte { - if len(buf) > 0 && buf[len(buf)-1] == '\r' { - ret buf[:len(buf)-1] - } - ret buf -} \ No newline at end of file