13inline constexpr char kPathSeparator = 
'.';
 
   14inline constexpr char kPathRoot[] = 
"/";
 
   15inline constexpr char kPathPrefixSeparator[] = 
":/";
 
   20void AppendPath(std::string& path, std::string_view key);
 
   21void AppendPath(std::string& path, std::size_t index);
 
   23std::string MakeChildPath(std::string_view parent, std::string_view key);
 
   24std::string MakeChildPath(std::string&& parent, std::string_view key);
 
   26std::string MakeChildPath(std::string_view parent, std::size_t index);
 
   27std::string MakeChildPath(std::string&& parent, std::size_t index);
 
   37  std::string ToString() 
const;
 
   38  std::string_view ToStringView() 
const;
 
   40  Path MakeChildPath(std::string_view key) 
const;
 
   41  Path MakeChildPath(std::size_t index) 
const;
 
   43  static Path WithPrefix(std::string path_prefix);
 
   46  explicit Path(std::string path);