Documentation
¶
Index ¶
- func NewDirectory(uid, gid uint32, tree *gitfstree.TreeNode, cloner *urls.FileSystemAdapter) fs.Node
- type BillyNode
- func (n *BillyNode) Attr(ctx context.Context, attr *fuse.Attr) error
- func (n *BillyNode) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error)
- func (n *BillyNode) Flush(ctx context.Context, req *fuse.FlushRequest) error
- func (n *BillyNode) Fsync(ctx context.Context, req *fuse.FsyncRequest) error
- func (n *BillyNode) Lookup(ctx context.Context, name string) (fs.Node, error)
- func (n *BillyNode) Mkdir(ctx context.Context, req *fuse.MkdirRequest) (fs.Node, error)
- func (n *BillyNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
- func (n *BillyNode) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
- func (n *BillyNode) ReadDirAll(ctx context.Context) ([]fuse.Dirent, error)
- func (n *BillyNode) Readlink(ctx context.Context, req *fuse.ReadlinkRequest) (string, error)
- func (n *BillyNode) Release(ctx context.Context, req *fuse.ReleaseRequest) error
- func (n *BillyNode) Remove(ctx context.Context, req *fuse.RemoveRequest) error
- func (n *BillyNode) Rename(ctx context.Context, req *fuse.RenameRequest, newDir fs.Node) error
- func (n *BillyNode) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error
- func (n *BillyNode) Symlink(ctx context.Context, req *fuse.SymlinkRequest) (fs.Node, error)
- func (n *BillyNode) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
- type BillyUser
- type Directory
- type FileSystem
- type INode
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewDirectory ¶
func NewDirectory(uid, gid uint32, tree *gitfstree.TreeNode, cloner *urls.FileSystemAdapter) fs.Node
NewDirectory constructs a new directory object using the supplied parameters.
Types ¶
type BillyNode ¶
type BillyNode struct {
// contains filtered or unexported fields
}
BillyNode is used to represent a node in a directory structure. It implements INode which defines all methods needed to be implemented by the FUSE file system.
func (*BillyNode) Create ¶
func (n *BillyNode) Create(ctx context.Context, req *fuse.CreateRequest, resp *fuse.CreateResponse) (fs.Node, fs.Handle, error)
Create description.
func (*BillyNode) Open ¶
func (n *BillyNode) Open(ctx context.Context, req *fuse.OpenRequest, resp *fuse.OpenResponse) (fs.Handle, error)
Open description.
func (*BillyNode) Read ¶
func (n *BillyNode) Read(ctx context.Context, req *fuse.ReadRequest, resp *fuse.ReadResponse) error
Read description.
func (*BillyNode) ReadDirAll ¶
ReadDirAll description.
func (*BillyNode) Setattr ¶
func (n *BillyNode) Setattr(ctx context.Context, req *fuse.SetattrRequest, resp *fuse.SetattrResponse) error
Setattr description.
func (*BillyNode) Write ¶
func (n *BillyNode) Write(ctx context.Context, req *fuse.WriteRequest, resp *fuse.WriteResponse) error
Write description.
type BillyUser ¶
type BillyUser struct {
// contains filtered or unexported fields
}
BillyUser is used to encapsulate the user id and group id across nodes.
type Directory ¶
type Directory struct {
// contains filtered or unexported fields
}
Directory represents a read only directory within the immutable repository tree.
type FileSystem ¶
type FileSystem struct { UID uint32 GID uint32 Tree *gitfstree.TreeNode FSA *urls.FileSystemAdapter }
FileSystem defines the root of the directory tree.
type INode ¶
type INode interface { // node functions fs.Node fs.NodeSetattrer // directory functions fs.NodeStringLookuper fs.HandleReadDirAller fs.NodeMkdirer fs.NodeCreater fs.NodeRemover fs.NodeRenamer fs.NodeSymlinker // handle functions fs.NodeOpener fs.HandleWriter fs.HandleReader fs.NodeFsyncer fs.HandleFlusher fs.HandleReleaser // symlink functions fs.NodeReadlinker }
INode encapsulates all the functionality that should be implemented to emulate an inode in unix file systems. I managed to stumble across this in a cockroachdb project, but can no longer find the reference.