+class _VariantFieldClassWithSelectorOptionConst(_VariantFieldClassOptionConst):
+ def __init__(self, owning_var_fc, spec_opt_ptr):
+ self._spec_ptr = spec_opt_ptr
+ super().__init__(owning_var_fc, self._as_option_ptr(spec_opt_ptr))
+
+ @property
+ def ranges(self):
+ range_set_ptr = self._borrow_ranges_ptr(self._spec_ptr)
+ assert range_set_ptr is not None
+ return self._range_set_type._create_from_ptr_and_get_ref(range_set_ptr)
+
+
+class _VariantFieldClassWithSelectorOption(
+ _VariantFieldClassWithSelectorOptionConst, _VariantFieldClassOption
+):
+ pass
+
+
+class _VariantFieldClassWithSignedSelectorOptionConst(
+ _VariantFieldClassWithSelectorOptionConst
+):
+ _as_option_ptr = staticmethod(
+ native_bt.field_class_variant_with_selector_signed_option_as_option_const
+ )
+ _borrow_ranges_ptr = staticmethod(
+ native_bt.field_class_variant_with_selector_signed_option_borrow_ranges_const
+ )
+ _range_set_type = bt2_integer_range_set.SignedIntegerRangeSet
+
+
+class _VariantFieldClassWithSignedSelectorOption(
+ _VariantFieldClassWithSignedSelectorOptionConst,
+ _VariantFieldClassWithSelectorOption,
+):
+ pass
+
+
+class _VariantFieldClassWithUnsignedSelectorOptionConst(
+ _VariantFieldClassWithSelectorOptionConst
+):
+ _as_option_ptr = staticmethod(
+ native_bt.field_class_variant_with_selector_unsigned_option_as_option_const
+ )
+ _borrow_ranges_ptr = staticmethod(
+ native_bt.field_class_variant_with_selector_unsigned_option_borrow_ranges_const
+ )
+ _range_set_type = bt2_integer_range_set.UnsignedIntegerRangeSet
+
+
+class _VariantFieldClassWithUnsignedSelectorOption(
+ _VariantFieldClassWithUnsignedSelectorOptionConst,
+ _VariantFieldClassWithSelectorOption,
+):
+ pass
+
+
+class _VariantFieldClassConst(_FieldClassConst, collections.abc.Mapping):
+ _NAME = 'Const Variant'
+ _borrow_option_ptr_by_name = staticmethod(