code: def _set_bit_size(self, size, step=1, auto_align=False):
          
          # Field size
          bit_size = int(size)
  
          # Invalid field size
          if bit_size % step != 0 or not (1 <= bit_size <= 64):
              raise FieldSizeError(self, self.index, bit_size)
  
          # Field group size
          group_size, offset = divmod(bit_size, 8)
          # Auto alignment
          if auto_align:
              if offset is not 0:
                  self._align_to_byte_size = group_size + 1
              else:
                  self._align_to_byte_size = group_size
          # Invalid field alignment
          elif group_size > self.alignment.byte_size:
              raise FieldAlignmentError(self, self.index,
                                        Alignment(group_size,
                                                  self.alignment.bit_offset))
          # Set field size
          self._bit_size = bit_size
docs: Sets the *size* of the `Decimal` field.
  
          :param int size: is the *size* of the `Decimal` field in bits,
              can be between ``1`` and ``64``.
          :param int step: is the minimal required step *size* for the `Decimal`
              field in bits.
          :param bool auto_align: if ``True`` the `Decimal` field aligns itself
              to the next matching byte size according to the *size* of the
              `Decimal` field.