21 template <
unsigned TLen = 5>
25 std::string & getNext()
33 inline bool isBoolOp(
int op_r )
48 inline bool needsBrace(
int op_r,
int parop_r )
50 return ( isBoolOp( parop_r ) || parop_r == 0 ) && isBoolOp( op_r )
51 && ( parop_r != op_r || op_r == REL_COND || op_r == REL_UNLESS || op_r == REL_ELSE )
52 && not ( ( parop_r == REL_COND || parop_r == REL_UNLESS ) && op_r == REL_ELSE );
58 if ( ISRELDEP(id_r) ) {
59 ::Reldep * rd = GETRELDEP( pool_r, id_r );
63 if ( rd->evr == ARCH_SRC || rd->evr == ARCH_NOSRC ) {
70 cap2str( outs_r, pool_r, rd->name, op );
72 cap2str( outs_r, pool_r, rd->evr, op );
77 cap2str( outs_r, pool_r, rd->name, op );
79 cap2str( outs_r, pool_r, rd->evr, op );
84 if ( op == REL_FILECONFLICT )
86 cap2str( outs_r, pool_r, rd->name, op );
90 if ( needsBrace( op, parop_r ) ) {
92 cap2str( outs_r, pool_r, rd->name, op );
94 cap2str( outs_r, pool_r, rd->evr, op );
99 cap2str( outs_r, pool_r, rd->name, op );
101 cap2str( outs_r, pool_r, rd->evr, op );
109 if ( not id_r )
return "";
112 static TempStrings<5> tempstrs;
114 std::string & outs { tempstrs.getNext() };
115 cap2str( outs, pool_r, id_r, 0 );
123 case REL_GT:
return " > ";
124 case REL_EQ:
return " = ";
125 case REL_LT:
return " < ";
126 case REL_GT|REL_EQ:
return " >= ";
127 case REL_LT|REL_EQ:
return " <= ";
128 case REL_GT|REL_LT:
return " != ";
129 case REL_GT|REL_LT|REL_EQ:
return " <=> ";
130 case REL_AND:
return " and ";
131 case REL_OR:
return " or ";
132 case REL_COND:
return " if ";
133 case REL_UNLESS:
return " unless ";
134 case REL_ELSE:
return " else ";
135 case REL_WITH:
return " with ";
136 case REL_WITHOUT:
return " without ";
138 return "UNKNOWNCAPREL";
static const ResKind srcpackage
zypp::sat::detail::CPool CPool
void cap2str(std::string &outs_r, CPool *pool_r, IdType id_r, int parop_r)
Shared logic to convert a sat ID into a human readable string.
const char * c_str() const
Conversion to const char *
zypp::sat::detail::IdType IdType
const char * capRel2Str(int op_r)
Convert a relation operator to its string representation.
const char * c_str() const
CLASS NAME : detail::DIWrap.