Minor code simplification.
This commit is contained in:
@@ -271,23 +271,17 @@ def gen_constructor(sgrp, parent, fmt):
|
|||||||
with fmt.indented(
|
with fmt.indented(
|
||||||
'pub fn new({}) -> Self {{'.format(args), '}'):
|
'pub fn new({}) -> Self {{'.format(args), '}'):
|
||||||
fmt.line('let bvec = builder.state_for("{}");'.format(sgrp.name))
|
fmt.line('let bvec = builder.state_for("{}");'.format(sgrp.name))
|
||||||
fmt.line('let mut bytes = [0; {}];'.format(sgrp.byte_size()))
|
|
||||||
fmt.line(
|
fmt.line(
|
||||||
'debug_assert_eq!(bvec.len(), {});'.format(sgrp.settings_size))
|
'let mut {} = Self {{ bytes: [0; {}] }};'
|
||||||
with fmt.indented(
|
.format(sgrp.name, sgrp.byte_size()))
|
||||||
'for (i, b) in bvec.iter().enumerate() {', '}'):
|
fmt.line(
|
||||||
fmt.line('bytes[i] = *b;')
|
'debug_assert_eq!(bvec.len(), {});'
|
||||||
|
.format(sgrp.settings_size))
|
||||||
# Stop here without predicates.
|
fmt.line(
|
||||||
if len(sgrp.predicate_number) == sgrp.boolean_settings:
|
'{}.bytes[0..{}].copy_from_slice(&bvec);'
|
||||||
fmt.line('Self { bytes }')
|
.format(sgrp.name, sgrp.settings_size))
|
||||||
return
|
|
||||||
|
|
||||||
# Now compute the predicates.
|
# Now compute the predicates.
|
||||||
fmt.line(
|
|
||||||
'let mut {} = Self {{ bytes }};'
|
|
||||||
.format(sgrp.name))
|
|
||||||
|
|
||||||
for pred, number in sgrp.predicate_number.items():
|
for pred, number in sgrp.predicate_number.items():
|
||||||
# Don't compute our own settings.
|
# Don't compute our own settings.
|
||||||
if number < sgrp.boolean_settings:
|
if number < sgrp.boolean_settings:
|
||||||
|
|||||||
Reference in New Issue
Block a user