Coverage for /home/jenkins/workspace/NDS/Zserio/NDS_ZSERIO-linux-build/compiler/extensions/python/runtime/src/zserio/builtin.py: 100%
9 statements
« prev ^ index » next coverage.py v6.5.0, created at 2023-12-13 15:12 +0000
« prev ^ index » next coverage.py v6.5.0, created at 2023-12-13 15:12 +0000
1"""
2The module provides implementation of zserio built-in operators.
3"""
5import typing
7def isset(bitmask_value: typing.Any, required_mask: typing.Any) -> bool:
8 """
9 Checks whether the required_mask is set within the bitmask_value.
11 This method implements zserio built-in operator isset.
13 :param bitmask_value: Bitmask value to check.
14 :param required_mask: Mask to use.
15 :returns: True when the required_mask is set within the bitmask_value, False otherwise.
16 """
18 return (bitmask_value & required_mask) == required_mask
20def numbits(num_values: int) -> int:
21 """
22 Gets the minimum number of bits required to encode given number of different values.
24 This method implements zserio built-in operator numBits.
26 :param num_values: The number of different values from which to calculate number of bits.
27 :returns: Number of bits required to encode num_values different values.
28 """
30 if num_values == 0:
31 return 0
32 if num_values == 1:
33 return 1
35 return (num_values - 1).bit_length()