QualifiedName.h 994 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * Copyright (c) 2020, the SerenityOS developers.
  3. * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #pragma once
  8. #include <AK/FlyString.h>
  9. namespace Web::DOM {
  10. class QualifiedName {
  11. public:
  12. QualifiedName(FlyString const& local_name, FlyString const& prefix, FlyString const& namespace_);
  13. FlyString const& local_name() const { return m_impl->local_name; }
  14. FlyString const& prefix() const { return m_impl->prefix; }
  15. FlyString const& namespace_() const { return m_impl->namespace_; }
  16. String const& as_string() const { return m_impl->as_string; }
  17. struct Impl : public RefCounted<Impl> {
  18. Impl(FlyString const& local_name, FlyString const& prefix, FlyString const& namespace_);
  19. ~Impl();
  20. void make_internal_string();
  21. FlyString local_name;
  22. FlyString prefix;
  23. FlyString namespace_;
  24. String as_string;
  25. };
  26. private:
  27. NonnullRefPtr<Impl> m_impl;
  28. };
  29. }