ladybird/Userland/Libraries/LibWeb/DOM/QualifiedName.h

44 lines
1.2 KiB
C
Raw Normal View History

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