in multiset_codec/codecs.py [0:0]
def Sequence(symbol_codec: Codec) -> Codec:
'''
Encodes a sequence by sequentially encoding symbols with symbol_codec.
'''
def encode(ans_state, sequence, *context):
for symbol in sequence:
ans_state, *context = \
symbol_codec.encode(ans_state, symbol, *context)
return (ans_state, *context)
def decode(ans_state, seq_length, *context):
sequence = seq_length*[None]
for i in reversed(range(seq_length)):
ans_state, sequence[i], *context = \
symbol_codec.decode(ans_state, *context)
return (ans_state, sequence, *context)
return Codec(encode, decode)