/* * Copyright (c) 2024, the SerenityOS developers. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Kernel::SFNUtils { class SFN : public RefCounted { public: static ErrorOr> try_create(ByteBuffer name, ByteBuffer extension, size_t unique); ErrorOr serialize_name() const; ErrorOr serialize_extension() const; size_t digits() const; size_t& unique() { return m_unique; } private: SFN(ByteBuffer name, ByteBuffer extension, size_t unique); ByteBuffer m_name; ByteBuffer m_extension; size_t m_unique; }; bool is_valid_sfn(StringView sfn); ErrorOr> create_sfn_from_lfn(StringView lfn); }