From a9676cc9b4e9ad86306f8c252e0307de9659215e Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Tue, 21 Aug 2018 19:44:02 +0100 Subject: [PATCH] Render Vec data correctly --- tv_output.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/tv_output.py b/tv_output.py index 8c8a417..9bc6766 100644 --- a/tv_output.py +++ b/tv_output.py @@ -63,6 +63,17 @@ def tv_bytes_rust(name, value, pad): pad, )) +def tv_vec_bytes_rust(name, value, pad): + print('''%s%s: vec![ + %s%s +%s],''' % ( + pad, + name, + pad, + chunk(hexlify(value)), + pad, + )) + def tv_option_bytes_rust(name, value, pad): if value: print('''%s%s: Some([ @@ -80,10 +91,13 @@ def tv_option_bytes_rust(name, value, pad): def tv_int_rust(name, value, pad): print('%s%s: %d,' % (pad, name, value)) -def tv_part_rust(name, value, indent=3): +def tv_part_rust(name, value, typ, indent=3): pad = ' ' * indent if type(value) == bytes: - tv_bytes_rust(name, value, pad) + if typ == 'Vec': + tv_vec_bytes_rust(name, value, pad) + else: + tv_bytes_rust(name, value, pad) elif isinstance(value, Some) or value is None: tv_option_bytes_rust(name, value, pad) elif type(value) == int: @@ -101,13 +115,13 @@ def tv_rust(filename, parts, vectors): )) if type(vectors) == type({}): print(' let test_vector = TestVector {') - for p in parts: tv_part_rust(p[0], vectors[p[0]]) + for p in parts: tv_part_rust(p[0], vectors[p[0]], p[1]['rust']) print(' };') elif type(vectors) == type([]): print(' let test_vectors = vec![') for vector in vectors: print(' TestVector {') - for p in parts: tv_part_rust(p[0], vector[p[0]], 4) + for p in parts: tv_part_rust(p[0], vector[p[0]], p[1]['rust'], 4) print(' },') print(' ];') else: