@@ -163,10 +163,11 @@ namespace {
163
163
164
164
class TList : public TBoxedValue {
165
165
public:
166
- TList (TRoaringWrapper* RoaringWrapper )
167
- : RoaringWrapper_(RoaringWrapper )
166
+ TList (TUnboxedValue UnboxedValue )
167
+ : UnboxedValue_(UnboxedValue )
168
168
{
169
- Length_ = roaring_bitmap_get_cardinality (RoaringWrapper_->Roaring );
169
+ auto wrapper = static_cast <TRoaringWrapper*>(UnboxedValue_.AsBoxed ().Get ());
170
+ Length_ = roaring_bitmap_get_cardinality (wrapper->Roaring );
170
171
}
171
172
172
173
bool HasFastListLength () const override {
@@ -182,20 +183,19 @@ namespace {
182
183
};
183
184
184
185
TUnboxedValue GetListIterator () const override {
185
- return TUnboxedValuePod (new TIterator (RoaringWrapper_->Roaring ));
186
+ auto wrapper = static_cast <TRoaringWrapper*>(UnboxedValue_.AsBoxed ().Get ());
187
+ return TUnboxedValuePod (new TIterator (wrapper->Roaring ));
186
188
};
187
189
188
190
private:
189
- TRoaringWrapper* RoaringWrapper_ ;
191
+ TUnboxedValue UnboxedValue_ ;
190
192
ui64 Length_;
191
193
};
192
194
193
195
TUnboxedValue Run (const IValueBuilder* valueBuilder,
194
196
const TUnboxedValuePod* args) const override {
195
197
Y_UNUSED (valueBuilder);
196
- auto bitmapWrapper = static_cast <TRoaringWrapper*>(args[0 ].AsBoxed ().Get ());
197
-
198
- return TUnboxedValuePod (new TList (bitmapWrapper));
198
+ return TUnboxedValuePod (new TList (args[0 ]));
199
199
}
200
200
};
201
201
@@ -272,7 +272,7 @@ namespace {
272
272
273
273
sink.Add (TRoaringCardinality::Name ());
274
274
275
- sink.Add (TRoaringUint32List::Name ())-> SetTypeAwareness () ;
275
+ sink.Add (TRoaringUint32List::Name ());
276
276
277
277
sink.Add (TRoaringOrWithBinary::Name ());
278
278
sink.Add (TRoaringOr::Name ());
@@ -294,7 +294,7 @@ namespace {
294
294
auto typesOnly = (flags & TFlags::TypesOnly);
295
295
296
296
if (TRoaringDeserialize::Name () == name) {
297
- builder.Returns <TOptional< TResource<RoaringResourceName> >>().Args ()->Add <TAutoMap<char *>>();
297
+ builder.Returns <TResource<RoaringResourceName>>().Args ()->Add <TAutoMap<char *>>();
298
298
299
299
if (!typesOnly) {
300
300
builder.Implementation (new TRoaringDeserialize ());
@@ -316,15 +316,15 @@ namespace {
316
316
builder.Implementation (new TRoaringCardinality ());
317
317
}
318
318
} else if (TRoaringUint32List::Name () == name) {
319
- builder.Returns <TOptional< TListType<ui32> >>()
319
+ builder.Returns <TListType<ui32>>()
320
320
.Args ()
321
321
->Add <TAutoMap<TResource<RoaringResourceName>>>();
322
322
323
323
if (!typesOnly) {
324
324
builder.Implementation (new TRoaringUint32List ());
325
325
}
326
326
} else if (TRoaringOrWithBinary::Name () == name) {
327
- builder.Returns <TOptional< TResource<RoaringResourceName> >>()
327
+ builder.Returns <TResource<RoaringResourceName>>()
328
328
.Args ()
329
329
->Add <TAutoMap<TResource<RoaringResourceName>>>()
330
330
.Add <TAutoMap<char *>>();
@@ -333,7 +333,7 @@ namespace {
333
333
builder.Implementation (new TRoaringOrWithBinary ());
334
334
}
335
335
} else if (TRoaringOr::Name () == name) {
336
- builder.Returns <TOptional< TResource<RoaringResourceName> >>()
336
+ builder.Returns <TResource<RoaringResourceName>>()
337
337
.Args ()
338
338
->Add <TAutoMap<TResource<RoaringResourceName>>>()
339
339
.Add <TAutoMap<TResource<RoaringResourceName>>>();
@@ -342,7 +342,7 @@ namespace {
342
342
builder.Implementation (new TRoaringOr ());
343
343
}
344
344
} else if (TRoaringAndWithBinary::Name () == name) {
345
- builder.Returns <TOptional< TResource<RoaringResourceName> >>()
345
+ builder.Returns <TResource<RoaringResourceName>>()
346
346
.Args ()
347
347
->Add <TAutoMap<TResource<RoaringResourceName>>>()
348
348
.Add <TAutoMap<char *>>();
@@ -351,7 +351,7 @@ namespace {
351
351
builder.Implementation (new TRoaringAndWithBinary ());
352
352
}
353
353
} else if (TRoaringAnd::Name () == name) {
354
- builder.Returns <TOptional< TResource<RoaringResourceName> >>()
354
+ builder.Returns <TResource<RoaringResourceName>>()
355
355
.Args ()
356
356
->Add <TAutoMap<TResource<RoaringResourceName>>>()
357
357
.Add <TAutoMap<TResource<RoaringResourceName>>>();
0 commit comments