Documentation
¶
Index ¶
- Constants
- func ErrorNodeFromBytes(bytes []byte) (*btree.Node[string, objects.MAC, objects.MAC], error)
- func NodeFromBytes(data []byte) (*btree.Node[string, objects.MAC, objects.MAC], error)
- func PathCmp(a, b string) int
- func XattrNodeFromBytes(bytes []byte) (*btree.Node[string, objects.MAC, objects.MAC], error)
- type Below
- type Classification
- type CustomMetadata
- type Directory
- type Entry
- func (e *Entry) AddClassification(analyzer string, classes []string)
- func (e *Entry) ContentType() string
- func (e *Entry) Entropy() float64
- func (e *Entry) Getdents(fsc *Filesystem) (iter.Seq2[*Entry, error], error)
- func (e *Entry) HasObject() bool
- func (e *Entry) Info() (fs.FileInfo, error)
- func (e *Entry) IsDir() bool
- func (e *Entry) MarshalJSON() ([]byte, error)
- func (e *Entry) Name() string
- func (e *Entry) Open(fs *Filesystem, path string) fs.File
- func (e *Entry) Path() string
- func (e *Entry) Size() int64
- func (e *Entry) Stat() *objects.FileInfo
- func (e *Entry) ToBytes() ([]byte, error)
- func (e *Entry) Type() fs.FileMode
- func (e *Entry) Xattr(fsc *Filesystem, xattrName string) (io.ReadSeeker, error)
- type ErrorItem
- type ExtendedAttribute
- type FileSummary
- type Filesystem
- func (fsc *Filesystem) Children(path string) (iter.Seq2[string, error], error)
- func (fsc *Filesystem) Errors(beneath string) (iter.Seq2[*ErrorItem, error], error)
- func (fsc *Filesystem) FileMacs() (iter.Seq2[objects.MAC, error], error)
- func (fsc *Filesystem) Files() iter.Seq2[string, error]
- func (fsc *Filesystem) GetEntry(path string) (*Entry, error)
- func (fsc *Filesystem) IterErrorNodes() iterator.Iterator[objects.MAC, *btree.Node[string, objects.MAC, objects.MAC]]
- func (fsc *Filesystem) IterNodes() iterator.Iterator[objects.MAC, *btree.Node[string, objects.MAC, objects.MAC]]
- func (fsc *Filesystem) Open(path string) (fs.File, error)
- func (fsc *Filesystem) Pathnames() iter.Seq2[string, error]
- func (fsc *Filesystem) ReadDir(path string) (entries []fs.DirEntry, err error)
- func (fsc *Filesystem) ResolveEntry(csum objects.MAC) (*Entry, error)
- func (fsc *Filesystem) WalkDir(root string, fn WalkDirFunc) error
- func (fsc *Filesystem) XattrNodes() iterator.Iterator[objects.MAC, *btree.Node[string, objects.MAC, objects.MAC]]
- type ObjectReader
- type Score
- type Summary
- type WalkDirFunc
- type Xattr
Constants ¶
View Source
const VFS_ENTRY_VERSION = "1.0.0"
View Source
const VFS_ERROR_VERSION = "1.0.0"
View Source
const VFS_XATTR_VERSION = "1.0.0"
Variables ¶
This section is empty.
Functions ¶
func ErrorNodeFromBytes ¶
func NodeFromBytes ¶
Types ¶
type Below ¶
type Below struct { Directories uint64 `msgpack:"directories,omitempty" json:"directories"` Files uint64 `msgpack:"files,omitempty" json:"files"` Symlinks uint64 `msgpack:"symlinks,omitempty" json:"symlinks"` Devices uint64 `msgpack:"devices,omitempty" json:"devices"` Pipes uint64 `msgpack:"pipes,omitempty" json:"pipes"` Sockets uint64 `msgpack:"sockets,omitempty" json:"sockets"` Children uint64 `msgpack:"children,omitempty" json:"children"` Setuid uint64 `msgpack:"setuid,omitempty" json:"setuid"` Setgid uint64 `msgpack:"setgid,omitempty" json:"setgid"` Sticky uint64 `msgpack:"sticky,omitempty" json:"sticky"` Objects uint64 `msgpack:"objects,omitempty" json:"objects"` Chunks uint64 `msgpack:"chunks,omitempty" json:"chunks"` MinSize uint64 `msgpack:"min_size,omitempty" json:"min_size"` MaxSize uint64 `msgpack:"max_size,omitempty" json:"max_size"` Size uint64 `msgpack:"size,omitempty" json:"size"` MinModTime int64 `msgpack:"min_mod_time,omitempty" json:"min_mod_time"` MaxModTime int64 `msgpack:"max_mod_time,omitempty" json:"max_mod_time"` MinEntropy float64 `msgpack:"min_entropy,omitempty" json:"min_entropy"` MaxEntropy float64 `msgpack:"max_entropy,omitempty" json:"max_entropy"` HiEntropy uint64 `msgpack:"hi_entropy,omitempty" json:"hi_entropy"` LoEntropy uint64 `msgpack:"lo_entropy,omitempty" json:"lo_entropy"` MIMEAudio uint64 `msgpack:"MIME_audio,omitempty" json:"MIME_audio"` MIMEVideo uint64 `msgpack:"MIME_video,omitempty" json:"MIME_video"` MIMEImage uint64 `msgpack:"MIME_image,omitempty" json:"MIME_image"` MIMEText uint64 `msgpack:"MIME_text,omitempty" json:"MIME_text"` MIMEApplication uint64 `msgpack:"MIME_application,omitempty" json:"MIME_application"` MIMEOther uint64 `msgpack:"MIME_other,omitempty" json:"MIME_other"` Errors uint64 `msgpack:"errors" json:"errors"` }
type Classification ¶
type CustomMetadata ¶
type Directory ¶
type Directory struct { Directories uint64 `msgpack:"directories,omitempty" json:"directories"` Files uint64 `msgpack:"files,omitempty" json:"files"` Symlinks uint64 `msgpack:"symlinks,omitempty" json:"symlinks"` Devices uint64 `msgpack:"devices,omitempty" json:"devices"` Pipes uint64 `msgpack:"pipes,omitempty" json:"pipes"` Sockets uint64 `msgpack:"sockets,omitempty" json:"sockets"` Children uint64 `msgpack:"children,omitempty" json:"children"` Setuid uint64 `msgpack:"setuid,omitempty" json:"setuid"` Setgid uint64 `msgpack:"setgid,omitempty" json:"setgid"` Sticky uint64 `msgpack:"sticky,omitempty" json:"sticky"` Objects uint64 `msgpack:"objects,omitempty" json:"objects"` Chunks uint64 `msgpack:"chunks,omitempty" json:"chunks"` MinSize uint64 `msgpack:"min_size,omitempty" json:"min_size"` MaxSize uint64 `msgpack:"max_size,omitempty" json:"max_size"` AvgSize uint64 `msgpack:"avg_size,omitempty" json:"avg_size"` Size uint64 `msgpack:"size,omitempty" json:"size"` MinModTime int64 `msgpack:"min_mod_time,omitempty" json:"min_mod_time"` MaxModTime int64 `msgpack:"max_mod_time,omitempty" json:"max_mod_time"` MinEntropy float64 `msgpack:"min_entropy,omitempty" json:"min_entropy"` MaxEntropy float64 `msgpack:"max_entropy,omitempty" json:"max_entropy"` SumEntropy float64 `msgpack:"sum_entropy,omitempty" json:"sum_entropy"` AvgEntropy float64 `msgpack:"avg_entropy,omitempty" json:"avg_entropy"` HiEntropy uint64 `msgpack:"hi_entropy,omitempty" json:"hi_entropy"` LoEntropy uint64 `msgpack:"lo_entropy,omitempty" json:"lo_entropy"` MIMEAudio uint64 `msgpack:"MIME_audio,omitempty" json:"MIME_audio"` MIMEVideo uint64 `msgpack:"MIME_video,omitempty" json:"MIME_video"` MIMEImage uint64 `msgpack:"MIME_image,omitempty" json:"MIME_image"` MIMEText uint64 `msgpack:"MIME_text,omitempty" json:"MIME_text"` MIMEApplication uint64 `msgpack:"MIME_application,omitempty" json:"MIME_application"` MIMEOther uint64 `msgpack:"MIME_other,omitempty" json:"MIME_other"` Errors uint64 `msgpack:"errors,omitempty" json:"errors"` }
type Entry ¶
type Entry struct { Version versioning.Version `msgpack:"version" json:"version"` ParentPath string `msgpack:"parent_path" json:"parent_path"` FileInfo objects.FileInfo `msgpack:"file_info" json:"file_info"` /* Directory specific fields */ Summary *Summary `msgpack:"summary" json:"summary,omitempty"` /* File specific fields */ SymlinkTarget string `msgpack:"symlink_target,omitempty" json:"symlink_target,omitempty"` Object objects.MAC `msgpack:"object,omitempty" json:"-"` // nil for !regular files ResolvedObject *objects.Object `msgpack:"-" json:"object,omitempty"` // This the true object, resolved when opening the entry. Beware we serialize it as "Object" only for json to not break API compat' /* Windows specific fields */ AlternateDataStreams []string `msgpack:"alternate_data_streams,omitempty" json:"alternate_data_streams"` SecurityDescriptor []byte `msgpack:"security_descriptor,omitempty" json:"security_descriptor"` FileAttributes uint32 `msgpack:"file_attributes,omitempty" json:"file_attributes"` /* Unix fields */ ExtendedAttributes []string `msgpack:"extended_attributes,omitempty" json:"extended_attributes"` /* Custom metadata and tags */ Classifications []Classification `msgpack:"classifications,omitempty" json:"classifications"` CustomMetadata []CustomMetadata `msgpack:"custom_metadata,omitempty" json:"custom_metadata"` Tags []string `msgpack:"tags,omitempty" json:"tags"` }
Entry implements FSEntry and fs.DirEntry, as well as some other helper methods.
func EntryFromBytes ¶
func (*Entry) AddClassification ¶
func (*Entry) ContentType ¶
func (*Entry) MarshalJSON ¶
Return empty lists for nil slices.
func (*Entry) Xattr ¶
func (e *Entry) Xattr(fsc *Filesystem, xattrName string) (io.ReadSeeker, error)
type ErrorItem ¶
type ErrorItem struct { Version versioning.Version `msgpack:"version" json:"version"` Name string `msgpack:"name" json:"name"` Error string `msgpack:"error" json:"error"` }
func ErrorItemFromBytes ¶
func NewErrorItem ¶
type ExtendedAttribute ¶
type FileSummary ¶
type FileSummary struct { Size uint64 `msgpack:"size" json:"size"` Objects uint64 `msgpack:"objects" json:"objects"` Chunks uint64 `msgpack:"chunks" json:"chunks"` Mode fs.FileMode `msgpack:"mode" json:"mode"` ModTime int64 `msgpack:"mod_time" json:"mod_time"` ContentType string `msgpack:"content_type" json:"content_type"` Entropy float64 `msgpack:"entropy" json:"entropy"` }
func FileSummaryFromBytes ¶
func FileSummaryFromBytes(data []byte) (*FileSummary, error)
func (*FileSummary) Serialize ¶
func (f *FileSummary) Serialize() ([]byte, error)
type Filesystem ¶
type Filesystem struct {
// contains filtered or unexported fields
}
func NewFilesystem ¶
func NewFilesystem(repo *repository.Repository, root, xattrs, errors objects.MAC) (*Filesystem, error)
func (*Filesystem) IterErrorNodes ¶
func (*Filesystem) ReadDir ¶
func (fsc *Filesystem) ReadDir(path string) (entries []fs.DirEntry, err error)
func (*Filesystem) ResolveEntry ¶
func (fsc *Filesystem) ResolveEntry(csum objects.MAC) (*Entry, error)
func (*Filesystem) WalkDir ¶
func (fsc *Filesystem) WalkDir(root string, fn WalkDirFunc) error
type ObjectReader ¶
type ObjectReader struct {
// contains filtered or unexported fields
}
func NewObjectReader ¶
func NewObjectReader(repo *repository.Repository, object *objects.Object, size int64) *ObjectReader
type Summary ¶
type Summary struct { Directory Directory `msgpack:"directory,omitempty" json:"directory"` Below Below `msgpack:"below,omitempty" json:"below"` }
func SummaryFromBytes ¶
func (*Summary) UpdateAverages ¶
func (s *Summary) UpdateAverages()
func (*Summary) UpdateBelow ¶
func (*Summary) UpdateWithFileSummary ¶
func (s *Summary) UpdateWithFileSummary(fileSummary *FileSummary)
type Xattr ¶
type Xattr struct { Version versioning.Version `msgpack:"version" json:"version"` Path string `msgpack:"path" json:"path"` Name string `msgpack:"name" json:"name"` Size int64 `msgpack:"size" json:"size"` Type objects.Attribute `msgpack:"type" json:"type"` Object objects.MAC `msgpack:"object,omitempty" json:"-"` // This the true object, resolved when opening the // xattr. Beware we serialize it as "Object" only for json to // not break API compat. ResolvedObject *objects.Object `msgpack:"-" json:"object,omitempty"` }
func XattrFromBytes ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.