vdoc: remove duplicated code
parent
ca9fa6407f
commit
394d64bfd0
|
@ -19,6 +19,8 @@ mut:
|
||||||
stmts []ast.Stmt // all module statements from all files
|
stmts []ast.Stmt // all module statements from all files
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FilterFn fn(node ast.FnDecl) bool
|
||||||
|
|
||||||
pub fn doc(mod string, table &table.Table) string {
|
pub fn doc(mod string, table &table.Table) string {
|
||||||
mut d := Doc{
|
mut d := Doc{
|
||||||
out: strings.new_builder(1000)
|
out: strings.new_builder(1000)
|
||||||
|
@ -64,39 +66,42 @@ fn (d &Doc) get_fn_node(f ast.FnDecl) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (d mut Doc) print_fns() {
|
fn (d mut Doc) print_fns() {
|
||||||
mut fn_names := []string
|
fn_signatures := d.get_fn_signatures(is_pub_function)
|
||||||
for stmt in d.stmts {
|
d.write_fn_signatures(fn_signatures)
|
||||||
match stmt {
|
}
|
||||||
ast.FnDecl {
|
|
||||||
if it.is_pub && !it.is_method {
|
fn (d mut Doc) print_methods() {
|
||||||
name := d.get_fn_node(it)
|
fn_signatures := d.get_fn_signatures(is_pub_method)
|
||||||
fn_names << name
|
d.write_fn_signatures(fn_signatures)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else {}
|
[inline]
|
||||||
}
|
fn (d mut Doc) write_fn_signatures(fn_signatures []string) {
|
||||||
}
|
for s in fn_signatures {
|
||||||
fn_names.sort()
|
|
||||||
for s in fn_names {
|
|
||||||
d.out.writeln(s)
|
d.out.writeln(s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn (d mut Doc) print_methods() {
|
fn (d Doc) get_fn_signatures(filter_fn FilterFn) []string {
|
||||||
mut fn_names := []string
|
mut fn_signatures := []string
|
||||||
for stmt in d.stmts {
|
for stmt in d.stmts {
|
||||||
match stmt {
|
match stmt {
|
||||||
ast.FnDecl {
|
ast.FnDecl {
|
||||||
if it.is_pub && it.is_method {
|
if filter_fn(it) {
|
||||||
name := d.get_fn_node(it)
|
fn_signatures << d.get_fn_node(it)
|
||||||
fn_names << name
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {}
|
else {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fn_names.sort()
|
fn_signatures.sort()
|
||||||
for s in fn_names {
|
return fn_signatures
|
||||||
d.out.writeln(s)
|
}
|
||||||
}
|
|
||||||
|
fn is_pub_method(node ast.FnDecl) bool {
|
||||||
|
return node.is_pub && node.is_method
|
||||||
|
}
|
||||||
|
|
||||||
|
fn is_pub_function(node ast.FnDecl) bool {
|
||||||
|
return node.is_pub && !node.is_method
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue