20 #ifndef PALUDIS_GUARD_PALUDIS_METADATA_KEY_HH
21 #define PALUDIS_GUARD_PALUDIS_METADATA_KEY_HH 1
28 #include <paludis/spec_tree.hh>
30 #include <paludis/metadata_key_holder.hh>
32 #include <paludis/pretty_printer-fwd.hh>
33 #include <paludis/pretty_print_options-fwd.hh>
34 #include <paludis/maintainer-fwd.hh>
35 #include <paludis/slot-fwd.hh>
37 #include <paludis/util/fs_path-fwd.hh>
39 #include <paludis/util/remove_shared_ptr.hh>
40 #include <paludis/util/visitor.hh>
41 #include <paludis/util/type_list.hh>
42 #include <paludis/util/timestamp-fwd.hh>
46 #include <type_traits>
92 MetadataCollectionKey<KeywordNameSet>,
93 MetadataCollectionKey<Set<std::string> >,
94 MetadataCollectionKey<Sequence<std::string> >,
95 MetadataCollectionKey<PackageIDSequence>,
96 MetadataCollectionKey<FSPathSequence>,
97 MetadataCollectionKey<Map<std::string, std::string> >,
98 MetadataCollectionKey<Maintainers>,
99 MetadataSpecTreeKey<DependencySpecTree>,
100 MetadataSpecTreeKey<LicenseSpecTree>,
101 MetadataSpecTreeKey<FetchableURISpecTree>,
102 MetadataSpecTreeKey<SimpleURISpecTree>,
103 MetadataSpecTreeKey<PlainTextSpecTree>,
104 MetadataSpecTreeKey<RequiredUseSpecTree>,
105 MetadataValueKey<std::string>,
106 MetadataValueKey<long>,
107 MetadataValueKey<bool>,
108 MetadataValueKey<FSPath>,
109 MetadataValueKey<Slot>,
110 MetadataValueKey<std::shared_ptr<const PackageID> >,
111 MetadataValueKey<std::shared_ptr<const Choices> >,
131 virtual const std::string raw_name()
const PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
136 virtual const std::string human_name()
const PALUDIS_ATTRIBUTE((warn_unused_result)) = 0;
159 virtual const std::string pretty_print_value(
193 template <
typename C_>
196 enum { value =
false };
202 enum { value =
true };
208 enum { value =
true };
214 enum { value =
true };
225 template <
typename C_>
227 public std::conditional<MetadataValueKeyIsPrettyPrintable<C_>::value, PrettyPrintableMetadataKey, MetadataKey>::type,
238 virtual const C_ parse_value() const
255 virtual ~MetadataTimeKey() = 0;
275 template <
typename C_>
289 virtual const std::shared_ptr<const C_> parse_value() const
301 template <typename C_>
315 virtual const std::shared_ptr<const C_> parse_value() const
332 public PrettyPrintableMetadataKey,
344 virtual const std::shared_ptr<const FetchableURISpecTree> parse_value()
const
351 virtual const std::shared_ptr<const URILabel> initial_label()
const
368 public PrettyPrintableMetadataKey,
380 virtual const std::shared_ptr<const DependencySpecTree> parse_value()
const
387 virtual const std::shared_ptr<const DependenciesLabelSequence> initial_labels()
const