# Value size constraint

class pyasn1.type.constraint.ValueSizeConstraint(minimum, maximum)

  Create a ValueSizeConstraint object.

  The ValueSizeConstraint satisfies any value for as long as its size falls within the range of permitted sizes.

  The ValueSizeConstraint object can be applied to `BitString`, `OctetString` (including all character ASN.1 types), `SequenceOf` and `SetOf` types.

  Parameters

    - minimum (`int`) – Minimum permitted size of the value (inclusive)

    - maximum (`int`) – Maximum permitted size of the value (inclusive)

  Examples

      class BaseballTeamRoster(SetOf):
          '''
          ASN.1 specification:

          BaseballTeamRoster ::= SET SIZE (1..25) OF PlayerNames
          '''
          componentType = PlayerNames()
          subtypeSpec = ValueSizeConstraint(1, 25)

      # this will succeed
      team = BaseballTeamRoster()
      team.extend(['Jan', 'Matej'])
      encode(team)

      # this will raise ValueConstraintError
      team = BaseballTeamRoster()
      team.extend(['Jan'] * 26)
      encode(team)

  Note

  Whenever ValueSizeConstraint is applied to mutable types (e.g. `SequenceOf`, `SetOf`), constraint validation only happens at the serialisation phase rather than schema instantiation phase (as it is with immutable types).