v.util: add Surrounder.builder_write_befores and Surrounder.builder_write_afters methods for writing to an existing strings.Builder
parent
480f3876ee
commit
117c99d938
|
@ -802,9 +802,9 @@ fn (mut g Gen) gen_str_for_struct(info ast.Struct, styp string, str_fn_name stri
|
||||||
mut fn_body_surrounder := util.new_surrounder(info.fields.len)
|
mut fn_body_surrounder := util.new_surrounder(info.fields.len)
|
||||||
mut fn_body := strings.new_builder(info.fields.len * 256)
|
mut fn_body := strings.new_builder(info.fields.len * 256)
|
||||||
defer {
|
defer {
|
||||||
fn_builder.write_string(fn_body_surrounder.before())
|
fn_body_surrounder.builder_write_befores(mut fn_builder)
|
||||||
fn_builder << fn_body
|
fn_builder << fn_body
|
||||||
fn_builder.write_string(fn_body_surrounder.after())
|
fn_body_surrounder.builder_write_afters(mut fn_builder)
|
||||||
fn_builder.writeln('\tstring_free(&indents);')
|
fn_builder.writeln('\tstring_free(&indents);')
|
||||||
fn_builder.writeln('\treturn res;')
|
fn_builder.writeln('\treturn res;')
|
||||||
fn_builder.writeln('}')
|
fn_builder.writeln('}')
|
||||||
|
|
|
@ -57,7 +57,7 @@ eprint(res);
|
||||||
string_free(&res);
|
string_free(&res);
|
||||||
strings__Builder_free(&sb);
|
strings__Builder_free(&sb);
|
||||||
')
|
')
|
||||||
dump_fns.writeln(surrounder.before())
|
surrounder.builder_write_befores(mut dump_fns)
|
||||||
dump_fns.writeln("\tstrings__Builder_write_rune(&sb, '[');")
|
dump_fns.writeln("\tstrings__Builder_write_rune(&sb, '[');")
|
||||||
dump_fns.writeln('\tstrings__Builder_write_string(&sb, fpath);')
|
dump_fns.writeln('\tstrings__Builder_write_string(&sb, fpath);')
|
||||||
dump_fns.writeln("\tstrings__Builder_write_rune(&sb, ':');")
|
dump_fns.writeln("\tstrings__Builder_write_rune(&sb, ':');")
|
||||||
|
@ -72,7 +72,7 @@ strings__Builder_free(&sb);
|
||||||
}
|
}
|
||||||
dump_fns.writeln('\tstrings__Builder_write_string(&sb, value);')
|
dump_fns.writeln('\tstrings__Builder_write_string(&sb, value);')
|
||||||
dump_fns.writeln("\tstrings__Builder_write_rune(&sb, '\\n');")
|
dump_fns.writeln("\tstrings__Builder_write_rune(&sb, '\\n');")
|
||||||
dump_fns.writeln(surrounder.after())
|
surrounder.builder_write_afters(mut dump_fns)
|
||||||
dump_fns.writeln('\treturn dump_arg;')
|
dump_fns.writeln('\treturn dump_arg;')
|
||||||
dump_fns.writeln('}')
|
dump_fns.writeln('}')
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,6 +61,30 @@ pub fn (s &Surrounder) after() string {
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn (s &Surrounder) builder_write_befores(mut sb strings.Builder) {
|
||||||
|
len := s.befores.len
|
||||||
|
if len > 0 {
|
||||||
|
for i := 0; i < len; i++ {
|
||||||
|
x := &s.befores[i]
|
||||||
|
if x.len > 0 {
|
||||||
|
sb.writeln(x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn (s &Surrounder) builder_write_afters(mut sb strings.Builder) {
|
||||||
|
len := s.afters.len
|
||||||
|
if len > 0 {
|
||||||
|
for i := len - 1; i >= 0; i-- {
|
||||||
|
x := &s.afters[i]
|
||||||
|
if x.len > 0 {
|
||||||
|
sb.writeln(x)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[unsafe]
|
[unsafe]
|
||||||
pub fn (mut s Surrounder) free() {
|
pub fn (mut s Surrounder) free() {
|
||||||
unsafe {
|
unsafe {
|
||||||
|
|
Loading…
Reference in New Issue