libzypp  17.14.0
ResolverNamespace.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
11 #ifndef ZYPP_RESOLVERNAMESPACE_H
12 #define ZYPP_RESOLVERNAMESPACE_H
13 
14 #include <iosfwd>
15 #include <cstdint>
16 
17 #include "zypp/base/Flags.h"
18 #include "zypp/IdString.h"
19 
21 namespace zypp
22 {
24  enum class ResolverNamespace : std::uint8_t
25  {
26  language = 1<<0,
27  modalias = 1<<1,
28  filesystem = 1<<2,
29  };
30 
33 
35  static constexpr const ResolverNamespaces NoResolverNamespaces = ResolverNamespace();
36 
38  static constexpr const ResolverNamespaces AllResolverNamespaces = ResolverNamespace(0xff);
39 
41  inline constexpr IdString asIdString( ResolverNamespace obj )
42  {
43  return IdString( obj == ResolverNamespace::language ? sat::detail::namespaceLanguage
44  : obj == ResolverNamespace::modalias ? sat::detail::namespaceModalias
45  : obj == ResolverNamespace::filesystem ? sat::detail::namespaceFilesystem
47  }
48 
50  inline std::string asString( ResolverNamespace obj )
51  { return asIdString( obj ).asString(); }
52 
54  inline std::ostream & operator<<( std::ostream & str, ResolverNamespace obj )
55  { return str << asIdString( obj ); }
56 
58  inline std::ostream & operator<<( std::ostream & str, ResolverNamespaces obj )
59  {
60  return str << stringify( obj, {
61  { ResolverNamespace::language, "language" },
62  { ResolverNamespace::modalias, "modalias" },
63  { ResolverNamespace::filesystem, "filesystem" },
64  }, "namespace:", "|", "" );
65  }
66 
67 } // namespace zypp
69 #endif // ZYPP_RESOLVERNAMESPACE_H