1 /*---------------------------------------------------------------------\
3 | |__ / \ / / . \ . \ |
8 \---------------------------------------------------------------------*/
9 /** \file zypp/ResolverNamespace.h
11 #ifndef ZYPP_RESOLVERNAMESPACE_H
12 #define ZYPP_RESOLVERNAMESPACE_H
17 #include "zypp/base/Flags.h"
18 #include "zypp/IdString.h"
20 ///////////////////////////////////////////////////////////////////
23 /** The resolvers dependency namespaces */
24 enum class ResolverNamespace : std::uint8_t
26 language = 1<<0, ///< language support
27 modalias = 1<<1, ///< hardware support
28 filesystem = 1<<2, ///< filesystems
31 /** \relates ResolverNamespace Flags */
32 ZYPP_DECLARE_FLAGS_AND_OPERATORS(ResolverNamespaces,ResolverNamespace);
34 /** \relates ResolverNamespace The underlying libsolv ID */
35 inline constexpr IdString asIdString( ResolverNamespace obj )
37 return IdString( obj == ResolverNamespace::language ? sat::detail::namespaceLanguage
38 : obj == ResolverNamespace::modalias ? sat::detail::namespaceModalias
39 : obj == ResolverNamespace::filesystem ? sat::detail::namespaceFilesystem
40 : sat::detail::noId );
43 /** \relates ResolverNamespace String representation */
44 inline std::string asString( ResolverNamespace obj )
45 { return asIdString( obj ).asString(); }
47 /** \relates ResolverNamespace Stream output */
48 inline std::ostream & operator<<( std::ostream & str, ResolverNamespace obj )
49 { return str << asIdString( obj ); }
51 /** \relates ResolverNamespaces Stream output */
52 inline std::ostream & operator<<( std::ostream & str, ResolverNamespaces obj )
54 return str << stringify( obj, {
55 { ResolverNamespace::language, "language" },
56 { ResolverNamespace::modalias, "modalias" },
57 { ResolverNamespace::filesystem, "filesystem" },
58 }, "namespace:", "|", "" );
62 ///////////////////////////////////////////////////////////////////
63 #endif // ZYPP_RESOLVERNAMESPACE_H