libzypp 17.37.10

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
32 ZYPP_DECLARE_FLAGS_AND_OPERATORS(ResolverNamespaces,ResolverNamespace);
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
46 : sat::detail::noId );
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
IdString.h
NoResolverNamespaces
static constexpr const ResolverNamespaces NoResolverNamespaces
All bits set.
Definition ResolverNamespace.h:35
AllResolverNamespaces
static constexpr const ResolverNamespaces AllResolverNamespaces
All bits set.
Definition ResolverNamespace.h:38
zypp::base::Flags::stringify
std::string stringify(const Flags< Enum > &flag_r, const std::initializer_list< std::pair< Flags< Enum >, std::string > > &flaglist_r={}, std::string intro_r="[", std::string sep_r="|", const std::string &extro_r="]")
Stringify Build a string of OR'ed names of each flag value set in flag_r.
Definition Flags.h:137
zypp::filesystem
Types and functions for filesystem operations.
Definition Glob.cc:24
zypp::sat::detail::namespaceLanguage
static const IdType namespaceLanguage(20)
zypp::sat::detail::namespaceModalias
static const IdType namespaceModalias(18)
zypp::sat::detail::namespaceFilesystem
static const IdType namespaceFilesystem(21)
zypp::sat::detail::noId
static const IdType noId(0)
zypp::str
String related utilities and Regular expression matching.
Definition PurgeKernels.h:19
zypp
Easy-to use interface to the ZYPP dependency resolver.
Definition Application.cc:20
zypp::ResolverNamespace
ResolverNamespace
The resolver's dependency namespaces.
Definition ResolverNamespace.h:25
zypp::ResolverNamespace::modalias
@ modalias
hardware support
Definition ResolverNamespace.h:27
zypp::ResolverNamespace::language
@ language
language support
Definition ResolverNamespace.h:26
zypp::ResolverNamespace::filesystem
@ filesystem
filesystems
Definition ResolverNamespace.h:28
zypp::operator<<
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
Definition SerialNumber.cc:52
zypp::asString
std::string asString(const Patch::Category &obj)
Definition Patch.cc:122
ZYPP_DECLARE_FLAGS_AND_OPERATORS
#define ZYPP_DECLARE_FLAGS_AND_OPERATORS(Name, Enum)
Definition Flags.h:189
Flags.h