RecordType.h
Go to the documentation of this file.
1 // BSD 3-Clause License; see https://github.com/scikit-hep/awkward-1.0/blob/main/LICENSE
2 
3 #ifndef AWKWARD_RECORDTYPE_H_
4 #define AWKWARD_RECORDTYPE_H_
5 
6 #include <vector>
7 #include <string>
8 
9 #include "awkward/common.h"
10 #include "awkward/util.h"
11 #include "awkward/type/Type.h"
12 
13 namespace awkward {
21  public:
33  RecordType(const util::Parameters& parameters,
34  const std::string& typestr,
35  const std::vector<TypePtr>& types,
36  const util::RecordLookupPtr& recordlookup);
37 
42  RecordType(const util::Parameters& parameters,
43  const std::string& typestr,
44  const std::vector<TypePtr>& types);
45 
47  const std::vector<TypePtr>
48  types() const;
49 
56  recordlookup() const;
57 
59  bool
60  istuple() const;
61 
62  std::string
63  tostring_part(const std::string& indent,
64  const std::string& pre,
65  const std::string& post) const override;
66 
67  const TypePtr
68  shallow_copy() const override;
69 
70  bool
71  equal(const TypePtr& other, bool check_parameters) const override;
72 
73  int64_t
74  numfields() const override;
75 
76  int64_t
77  fieldindex(const std::string& key) const override;
78 
79  const std::string
80  key(int64_t fieldindex) const override;
81 
82  bool
83  haskey(const std::string& key) const override;
84 
85  const std::vector<std::string>
86  keys() const override;
87 
88  const ContentPtr
89  empty() const override;
90 
94  const TypePtr
95  field(int64_t fieldindex) const;
96 
100  const TypePtr
101  field(const std::string& key) const;
102 
106  const std::vector<TypePtr>
107  fields() const;
108 
110  const std::vector<std::pair<std::string, TypePtr>>
111  fielditems() const;
112 
115  const TypePtr
116  astuple() const;
117 
118  private:
120  const std::vector<TypePtr> types_;
122  const util::RecordLookupPtr recordlookup_;
123  };
124 }
125 
126 #endif // AWKWARD_RECORDTYPE_H_
Describes the high level type of data containing tuples or records.
Definition: RecordType.h:20
#define LIBAWKWARD_EXPORT_SYMBOL
Definition: common.h:45
const std::string key(const RecordLookupPtr &recordlookup, int64_t fieldindex, int64_t numfields)
Returns the key associated with a field index, given a RecordLookup and a number of fields...
Definition: BitMaskedArray.h:15
Abstract superclass of all high level types (flat hierarchy).
Definition: Type.h:23
const std::vector< std::string > keys(const RecordLookupPtr &recordlookup, int64_t numfields)
Returns a given RecordLookup as keys or generate anonymous ones form a number of fields.
std::map< std::string, std::string > Parameters
Definition: util.h:165
int64_t fieldindex(const RecordLookupPtr &recordlookup, const std::string &key, int64_t numfields)
Returns the field index associated with a key, given a RecordLookup and a number of fields...
bool haskey(const RecordLookupPtr &recordlookup, const std::string &key, int64_t numfields)
Returns true if a RecordLookup has a given key; false otherwise.
std::shared_ptr< Type > TypePtr
Definition: Content.h:23
std::shared_ptr< RecordLookup > RecordLookupPtr
Definition: util.h:130
std::shared_ptr< Content > ContentPtr
Definition: ArrayBuilder.h:16