github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/protocol/keybase1/fs.go (about) 1 // Auto-generated to Go types and interfaces using avdl-compiler v1.4.10 (https://github.com/keybase/node-avdl-compiler) 2 // Input file: avdl/keybase1/fs.avdl 3 4 package keybase1 5 6 import ( 7 "github.com/keybase/go-framed-msgpack-rpc/rpc" 8 context "golang.org/x/net/context" 9 "time" 10 ) 11 12 type File struct { 13 Path string `codec:"path" json:"path"` 14 } 15 16 func (o File) DeepCopy() File { 17 return File{ 18 Path: o.Path, 19 } 20 } 21 22 type ListResult struct { 23 Files []File `codec:"files" json:"files"` 24 } 25 26 func (o ListResult) DeepCopy() ListResult { 27 return ListResult{ 28 Files: (func(x []File) []File { 29 if x == nil { 30 return nil 31 } 32 ret := make([]File, len(x)) 33 for i, v := range x { 34 vCopy := v.DeepCopy() 35 ret[i] = vCopy 36 } 37 return ret 38 })(o.Files), 39 } 40 } 41 42 type ListArg struct { 43 SessionID int `codec:"sessionID" json:"sessionID"` 44 Path string `codec:"path" json:"path"` 45 } 46 47 type FsInterface interface { 48 // List files in a path. Implemented by KBFS service. 49 List(context.Context, ListArg) (ListResult, error) 50 } 51 52 func FsProtocol(i FsInterface) rpc.Protocol { 53 return rpc.Protocol{ 54 Name: "keybase.1.fs", 55 Methods: map[string]rpc.ServeHandlerDescription{ 56 "List": { 57 MakeArg: func() interface{} { 58 var ret [1]ListArg 59 return &ret 60 }, 61 Handler: func(ctx context.Context, args interface{}) (ret interface{}, err error) { 62 typedArgs, ok := args.(*[1]ListArg) 63 if !ok { 64 err = rpc.NewTypeError((*[1]ListArg)(nil), args) 65 return 66 } 67 ret, err = i.List(ctx, typedArgs[0]) 68 return 69 }, 70 }, 71 }, 72 } 73 } 74 75 type FsClient struct { 76 Cli rpc.GenericClient 77 } 78 79 // List files in a path. Implemented by KBFS service. 80 func (c FsClient) List(ctx context.Context, __arg ListArg) (res ListResult, err error) { 81 err = c.Cli.Call(ctx, "keybase.1.fs.List", []interface{}{__arg}, &res, 0*time.Millisecond) 82 return 83 }