| 289 | }; |
| 290 | |
| 291 | struct ArraySizePredicate : IPredicate, ReferenceCounted<ArraySizePredicate>, FastAllocated<ArraySizePredicate> { |
| 292 | void addref() override { ReferenceCounted<ArraySizePredicate>::addref(); } |
| 293 | void delref() override { ReferenceCounted<ArraySizePredicate>::delref(); } |
| 294 | |
| 295 | TypeCode getTypeCode() const override { return TypeCode::ARRAY_SIZE; } |
| 296 | |
| 297 | Future<bool> evaluate(Reference<IReadContext> const& context) override; |
| 298 | std::string toString() override; |
| 299 | |
| 300 | // Is this correct? |
| 301 | void get_range(Optional<DataValue>& min, Optional<DataValue>& max) override { |
| 302 | DataValue arrayHeader = DataValue::arrayOfLength(size); |
| 303 | min = arrayHeader; |
| 304 | max = arrayHeader; |
| 305 | } |
| 306 | |
| 307 | uint32_t size; |
| 308 | |
| 309 | explicit ArraySizePredicate(uint32_t size) : size(size) {} |
| 310 | }; |
| 311 | |
| 312 | // RegExPredicate(expr, pred) to be defined ... |
| 313 | struct RegExPredicate : IPredicate, ReferenceCounted<RegExPredicate>, FastAllocated<RegExPredicate> { |
nothing calls this directly
no outgoing calls
no test coverage detected