/* * Copyright (c) 2020, the SerenityOS developers. * Copyright (c) 2022, Andreas Kling * Copyright (c) 2023, Shannon Booth * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::DOM { class QualifiedName { public: QualifiedName(FlyString const& local_name, Optional const& prefix, Optional const& namespace_); FlyString const& local_name() const { return m_impl->local_name; } Optional const& prefix() const { return m_impl->prefix; } Optional const& namespace_() const { return m_impl->namespace_; } FlyString const& as_string() const { return m_impl->as_string; } struct Impl : public RefCounted { Impl(FlyString const& local_name, Optional const& prefix, Optional const& namespace_); ~Impl(); void make_internal_string(); FlyString local_name; Optional prefix; Optional namespace_; FlyString as_string; }; void set_prefix(Optional value); private: NonnullRefPtr m_impl; }; }