summaryrefslogtreecommitdiff
path: root/lib/libc/include/string-file.h
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-10-16 02:39:56 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-10-16 02:39:56 +0800
commit8cace3f05003c6cb4d38c36890055f03151c2ad4 (patch)
treeaa739deaac0266f17c4e91b333957501cb1ea2e9 /lib/libc/include/string-file.h
parent3ad39e9878310e5317ee73c9b353c1e2c1c5c4ee (diff)
downloadlume-8cace3f05003c6cb4d38c36890055f03151c2ad4.tar.gz
lume-8cace3f05003c6cb4d38c36890055f03151c2ad4.tar.xz
Remove old code
Signed-off-by: Richard Qin <richard.qin.x@gmail.com>
Diffstat (limited to 'lib/libc/include/string-file.h')
-rw-r--r--lib/libc/include/string-file.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/lib/libc/include/string-file.h b/lib/libc/include/string-file.h
deleted file mode 100644
index 1632933..0000000
--- a/lib/libc/include/string-file.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2021 The Fuchsia Authors
-// Copyright (c) 2008 Travis Geiselbrecht
-//
-// Use of this source code is governed by a MIT-style
-// license that can be found in the LICENSE file or at
-// https://opensource.org/licenses/MIT
-
-#ifndef ZIRCON_KERNEL_LIB_LIBC_INCLUDE_STRING_FILE_H_
-#define ZIRCON_KERNEL_LIB_LIBC_INCLUDE_STRING_FILE_H_
-
-#ifdef __cplusplus
-#include <stdio.h>
-
-#include <ktl/algorithm.h>
-#include <ktl/span.h>
-#include <ktl/string_view.h>
-
-// FILE* wrapper over a string.
-class StringFile : public FILE {
- public:
- StringFile() = delete;
- StringFile(const StringFile &) = delete;
- StringFile operator=(const StringFile &) = delete;
-
- explicit StringFile(ktl::span<char> s) : FILE(this), buffer_(s) {}
-
- ~StringFile() = default;
-
- // Adds a null character at the end of the current buffer and returns a view
- // into the written section.
- ktl::span<char> take() &&;
-
- // Returns |str.size()| and writes as much of |str| as it would fit in the
- // buffer [offest_, size - 1) while reserving the last byte for null
- // character.
- int Write(ktl::string_view str);
-
- // Returns a region representing the currently used portion of the buffer.
- ktl::span<char> used_region() const {
- return (offset_ > 0) ? ktl::span<char>{buffer_.data(), offset_} : ktl::span<char>{};
- }
-
- // Returns a region representing the remaining unused space in the buffer,
- // _not_ including the space reserved for the final null character.
- ktl::span<char> available_region() const {
- const size_t available = ktl::max<size_t>(buffer_.size() - offset_, 1) - 1;
- return (available > 0) ? ktl::span<char>{buffer_.data() + offset_, available}
- : ktl::span<char>{};
- }
-
- // Skip up to |amt| bytes in the buffer, advancing the write pointer as if we
- // had written data, but without actually changing the buffer.
- void Skip(size_t amt) {
- amt = ktl::min(amt, available_region().size());
- offset_ += amt;
- }
-
- // Provide two ways for users to convert the currently used buffer into a
- // string_view. Given a string file |S|, users may say either:
- //
- // 1) S.as_string_view(); // or
- // 2) static_cast<ktl::string_view>(S);
- //
- // to perform the conversion.
- //
- ktl::string_view as_string_view() const {
- return (offset_ > 0) ? ktl::string_view{buffer_.data(), offset_} : ktl::string_view{};
- }
-
- explicit operator ktl::string_view() const { return this->as_string_view(); }
-
- private:
- ktl::span<char> buffer_;
- size_t offset_ = 0;
-};
-
-#endif // __cplusplus
-
-#endif // ZIRCON_KERNEL_LIB_LIBC_INCLUDE_STRING_FILE_H_