#pragma once #include "LibLsp/JsonRpc/serializer.h" #include struct lsDocumentUri { static lsDocumentUri FromPath(const AbsolutePath& path); lsDocumentUri(); lsDocumentUri(const AbsolutePath& path); lsDocumentUri(const lsDocumentUri& other);; bool operator==(const lsDocumentUri& other) const; bool operator==(const std::string& other) const; void SetPath(const AbsolutePath& path); std::string GetRawPath() const; AbsolutePath GetAbsolutePath() const; std::string raw_uri_; void swap(lsDocumentUri& arg) noexcept { raw_uri_.swap(arg.raw_uri_); } }; extern void Reflect(Writer& visitor, lsDocumentUri& value); extern void Reflect(Reader& visitor, lsDocumentUri& value); extern std::string make_file_scheme_uri(const std::string& absolute_path);