Linux vmi284606.contaboserver.net 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64
Apache/2.4.57 (Ubuntu)
: 167.86.127.34 | : 216.73.217.1
Cant Read [ /etc/named.conf ]
7.2.24-0ubuntu0.18.04.17
root
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
local /
go /
src /
go /
doc /
[ HOME SHELL ]
Name
Size
Permission
Action
testdata
[ DIR ]
drwxr-xr-x
Makefile
246
B
-rw-r--r--
comment.go
12.4
KB
-rw-r--r--
comment_test.go
6.93
KB
-rw-r--r--
doc.go
7.37
KB
-rw-r--r--
doc_test.go
3.51
KB
-rw-r--r--
example.go
15.43
KB
-rw-r--r--
example_test.go
15.12
KB
-rw-r--r--
exports.go
7.76
KB
-rw-r--r--
filter.go
2.11
KB
-rw-r--r--
headscan.go
2.56
KB
-rw-r--r--
reader.go
24.86
KB
-rw-r--r--
synopsis.go
1.98
KB
-rw-r--r--
synopsis_test.go
1.83
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : filter.go
// Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package doc import "go/ast" type Filter func(string) bool func matchFields(fields *ast.FieldList, f Filter) bool { if fields != nil { for _, field := range fields.List { for _, name := range field.Names { if f(name.Name) { return true } } } } return false } func matchDecl(d *ast.GenDecl, f Filter) bool { for _, d := range d.Specs { switch v := d.(type) { case *ast.ValueSpec: for _, name := range v.Names { if f(name.Name) { return true } } case *ast.TypeSpec: if f(v.Name.Name) { return true } switch t := v.Type.(type) { case *ast.StructType: if matchFields(t.Fields, f) { return true } case *ast.InterfaceType: if matchFields(t.Methods, f) { return true } } } } return false } func filterValues(a []*Value, f Filter) []*Value { w := 0 for _, vd := range a { if matchDecl(vd.Decl, f) { a[w] = vd w++ } } return a[0:w] } func filterFuncs(a []*Func, f Filter) []*Func { w := 0 for _, fd := range a { if f(fd.Name) { a[w] = fd w++ } } return a[0:w] } func filterTypes(a []*Type, f Filter) []*Type { w := 0 for _, td := range a { n := 0 // number of matches if matchDecl(td.Decl, f) { n = 1 } else { // type name doesn't match, but we may have matching consts, vars, factories or methods td.Consts = filterValues(td.Consts, f) td.Vars = filterValues(td.Vars, f) td.Funcs = filterFuncs(td.Funcs, f) td.Methods = filterFuncs(td.Methods, f) n += len(td.Consts) + len(td.Vars) + len(td.Funcs) + len(td.Methods) } if n > 0 { a[w] = td w++ } } return a[0:w] } // Filter eliminates documentation for names that don't pass through the filter f. // TODO(gri): Recognize "Type.Method" as a name. // func (p *Package) Filter(f Filter) { p.Consts = filterValues(p.Consts, f) p.Vars = filterValues(p.Vars, f) p.Types = filterTypes(p.Types, f) p.Funcs = filterFuncs(p.Funcs, f) p.Doc = "" // don't show top-level package doc }
Close