github.com/creachadair/ffs@v0.17.3/file/wiretype/wiretype.pb.go (about)

     1  // Copyright 2021 Michael J. Fromberger. All Rights Reserved.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // This schema defines the encoding types for the ffs package.
    16  
    17  // Code generated by protoc-gen-go. DO NOT EDIT.
    18  // versions:
    19  // 	protoc-gen-go v1.36.10
    20  // 	protoc        v6.33.0
    21  // source: wiretype.proto
    22  
    23  package wiretype
    24  
    25  import (
    26  	indexpb "github.com/creachadair/ffs/index/indexpb"
    27  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    28  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    29  	reflect "reflect"
    30  	sync "sync"
    31  	unsafe "unsafe"
    32  )
    33  
    34  const (
    35  	// Verify that this generated code is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    37  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    38  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    39  )
    40  
    41  // A FileType abstracts the type of a file.
    42  type Stat_FileType int32
    43  
    44  const (
    45  	Stat_REGULAR     Stat_FileType = 0   // a regular file
    46  	Stat_DIRECTORY   Stat_FileType = 1   // a directory
    47  	Stat_SYMLINK     Stat_FileType = 2   // a symbolic link
    48  	Stat_SOCKET      Stat_FileType = 3   // a Unix-domain socket
    49  	Stat_NAMED_PIPE  Stat_FileType = 4   // a named pipe
    50  	Stat_DEVICE      Stat_FileType = 5   // a (block) device file
    51  	Stat_CHAR_DEVICE Stat_FileType = 6   // a (character) device file
    52  	Stat_UNKNOWN     Stat_FileType = 404 // nothing is known about the type of this file
    53  )
    54  
    55  // Enum value maps for Stat_FileType.
    56  var (
    57  	Stat_FileType_name = map[int32]string{
    58  		0:   "REGULAR",
    59  		1:   "DIRECTORY",
    60  		2:   "SYMLINK",
    61  		3:   "SOCKET",
    62  		4:   "NAMED_PIPE",
    63  		5:   "DEVICE",
    64  		6:   "CHAR_DEVICE",
    65  		404: "UNKNOWN",
    66  	}
    67  	Stat_FileType_value = map[string]int32{
    68  		"REGULAR":     0,
    69  		"DIRECTORY":   1,
    70  		"SYMLINK":     2,
    71  		"SOCKET":      3,
    72  		"NAMED_PIPE":  4,
    73  		"DEVICE":      5,
    74  		"CHAR_DEVICE": 6,
    75  		"UNKNOWN":     404,
    76  	}
    77  )
    78  
    79  func (x Stat_FileType) Enum() *Stat_FileType {
    80  	p := new(Stat_FileType)
    81  	*p = x
    82  	return p
    83  }
    84  
    85  func (x Stat_FileType) String() string {
    86  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    87  }
    88  
    89  func (Stat_FileType) Descriptor() protoreflect.EnumDescriptor {
    90  	return file_wiretype_proto_enumTypes[0].Descriptor()
    91  }
    92  
    93  func (Stat_FileType) Type() protoreflect.EnumType {
    94  	return &file_wiretype_proto_enumTypes[0]
    95  }
    96  
    97  func (x Stat_FileType) Number() protoreflect.EnumNumber {
    98  	return protoreflect.EnumNumber(x)
    99  }
   100  
   101  // Deprecated: Use Stat_FileType.Descriptor instead.
   102  func (Stat_FileType) EnumDescriptor() ([]byte, []int) {
   103  	return file_wiretype_proto_rawDescGZIP(), []int{3, 0}
   104  }
   105  
   106  // An Object is the top-level wrapper for encoded objects.
   107  type Object struct {
   108  	state protoimpl.MessageState `protogen:"open.v1"`
   109  	// Types that are valid to be assigned to Value:
   110  	//
   111  	//	*Object_Node
   112  	//	*Object_Root
   113  	//	*Object_Index
   114  	Value isObject_Value `protobuf_oneof:"value"`
   115  	// A version marker for the stored object.
   116  	// Currently 0 is the only known value.
   117  	Version       uint64 `protobuf:"varint,15,opt,name=version,proto3" json:"version,omitempty"`
   118  	unknownFields protoimpl.UnknownFields
   119  	sizeCache     protoimpl.SizeCache
   120  }
   121  
   122  func (x *Object) Reset() {
   123  	*x = Object{}
   124  	mi := &file_wiretype_proto_msgTypes[0]
   125  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   126  	ms.StoreMessageInfo(mi)
   127  }
   128  
   129  func (x *Object) String() string {
   130  	return protoimpl.X.MessageStringOf(x)
   131  }
   132  
   133  func (*Object) ProtoMessage() {}
   134  
   135  func (x *Object) ProtoReflect() protoreflect.Message {
   136  	mi := &file_wiretype_proto_msgTypes[0]
   137  	if x != nil {
   138  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   139  		if ms.LoadMessageInfo() == nil {
   140  			ms.StoreMessageInfo(mi)
   141  		}
   142  		return ms
   143  	}
   144  	return mi.MessageOf(x)
   145  }
   146  
   147  // Deprecated: Use Object.ProtoReflect.Descriptor instead.
   148  func (*Object) Descriptor() ([]byte, []int) {
   149  	return file_wiretype_proto_rawDescGZIP(), []int{0}
   150  }
   151  
   152  func (x *Object) GetValue() isObject_Value {
   153  	if x != nil {
   154  		return x.Value
   155  	}
   156  	return nil
   157  }
   158  
   159  func (x *Object) GetNode() *Node {
   160  	if x != nil {
   161  		if x, ok := x.Value.(*Object_Node); ok {
   162  			return x.Node
   163  		}
   164  	}
   165  	return nil
   166  }
   167  
   168  func (x *Object) GetRoot() *Root {
   169  	if x != nil {
   170  		if x, ok := x.Value.(*Object_Root); ok {
   171  			return x.Root
   172  		}
   173  	}
   174  	return nil
   175  }
   176  
   177  func (x *Object) GetIndex() *indexpb.Index {
   178  	if x != nil {
   179  		if x, ok := x.Value.(*Object_Index); ok {
   180  			return x.Index
   181  		}
   182  	}
   183  	return nil
   184  }
   185  
   186  func (x *Object) GetVersion() uint64 {
   187  	if x != nil {
   188  		return x.Version
   189  	}
   190  	return 0
   191  }
   192  
   193  type isObject_Value interface {
   194  	isObject_Value()
   195  }
   196  
   197  type Object_Node struct {
   198  	Node *Node `protobuf:"bytes,1,opt,name=node,proto3,oneof"` // a structured file object
   199  }
   200  
   201  type Object_Root struct {
   202  	Root *Root `protobuf:"bytes,2,opt,name=root,proto3,oneof"` // a root pointer
   203  }
   204  
   205  type Object_Index struct {
   206  	Index *indexpb.Index `protobuf:"bytes,3,opt,name=index,proto3,oneof"` // a blob index
   207  }
   208  
   209  func (*Object_Node) isObject_Value() {}
   210  
   211  func (*Object_Root) isObject_Value() {}
   212  
   213  func (*Object_Index) isObject_Value() {}
   214  
   215  // A Root records the location of a root node of a file tree.
   216  type Root struct {
   217  	state protoimpl.MessageState `protogen:"open.v1"`
   218  	// The storage key of the root of the tree.
   219  	// The blob contains an Object holding a Node message.
   220  	// This field must be non-empty for a root to be valid.
   221  	FileKey []byte `protobuf:"bytes,1,opt,name=file_key,json=fileKey,proto3" json:"file_key,omitempty"`
   222  	// A human-readable descriptive label for the root.
   223  	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
   224  	// The storage key of a blob index for the root.
   225  	// The blob contains a Object holding an ffs.index.Index message.
   226  	IndexKey []byte `protobuf:"bytes,4,opt,name=index_key,json=indexKey,proto3" json:"index_key,omitempty"`
   227  	// The storage key of a previous version of this root.  The file_key and
   228  	// index_key of the chained root, if any, are considered reachable from this
   229  	// root.
   230  	ChainKey      []byte `protobuf:"bytes,6,opt,name=chain_key,json=chainKey,proto3" json:"chain_key,omitempty"`
   231  	unknownFields protoimpl.UnknownFields
   232  	sizeCache     protoimpl.SizeCache
   233  }
   234  
   235  func (x *Root) Reset() {
   236  	*x = Root{}
   237  	mi := &file_wiretype_proto_msgTypes[1]
   238  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   239  	ms.StoreMessageInfo(mi)
   240  }
   241  
   242  func (x *Root) String() string {
   243  	return protoimpl.X.MessageStringOf(x)
   244  }
   245  
   246  func (*Root) ProtoMessage() {}
   247  
   248  func (x *Root) ProtoReflect() protoreflect.Message {
   249  	mi := &file_wiretype_proto_msgTypes[1]
   250  	if x != nil {
   251  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   252  		if ms.LoadMessageInfo() == nil {
   253  			ms.StoreMessageInfo(mi)
   254  		}
   255  		return ms
   256  	}
   257  	return mi.MessageOf(x)
   258  }
   259  
   260  // Deprecated: Use Root.ProtoReflect.Descriptor instead.
   261  func (*Root) Descriptor() ([]byte, []int) {
   262  	return file_wiretype_proto_rawDescGZIP(), []int{1}
   263  }
   264  
   265  func (x *Root) GetFileKey() []byte {
   266  	if x != nil {
   267  		return x.FileKey
   268  	}
   269  	return nil
   270  }
   271  
   272  func (x *Root) GetDescription() string {
   273  	if x != nil {
   274  		return x.Description
   275  	}
   276  	return ""
   277  }
   278  
   279  func (x *Root) GetIndexKey() []byte {
   280  	if x != nil {
   281  		return x.IndexKey
   282  	}
   283  	return nil
   284  }
   285  
   286  func (x *Root) GetChainKey() []byte {
   287  	if x != nil {
   288  		return x.ChainKey
   289  	}
   290  	return nil
   291  }
   292  
   293  // A Node is the top-level encoding of a file.
   294  type Node struct {
   295  	state         protoimpl.MessageState `protogen:"open.v1"`
   296  	Index         *Index                 `protobuf:"bytes,1,opt,name=index,proto3" json:"index,omitempty"`                 // file contents
   297  	Stat          *Stat                  `protobuf:"bytes,2,opt,name=stat,proto3" json:"stat,omitempty"`                   // stat metadata (optional)
   298  	XAttrs        []*XAttr               `protobuf:"bytes,3,rep,name=x_attrs,json=xAttrs,proto3" json:"x_attrs,omitempty"` // extended attributes
   299  	Children      []*Child               `protobuf:"bytes,4,rep,name=children,proto3" json:"children,omitempty"`           // child file pointers
   300  	unknownFields protoimpl.UnknownFields
   301  	sizeCache     protoimpl.SizeCache
   302  }
   303  
   304  func (x *Node) Reset() {
   305  	*x = Node{}
   306  	mi := &file_wiretype_proto_msgTypes[2]
   307  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   308  	ms.StoreMessageInfo(mi)
   309  }
   310  
   311  func (x *Node) String() string {
   312  	return protoimpl.X.MessageStringOf(x)
   313  }
   314  
   315  func (*Node) ProtoMessage() {}
   316  
   317  func (x *Node) ProtoReflect() protoreflect.Message {
   318  	mi := &file_wiretype_proto_msgTypes[2]
   319  	if x != nil {
   320  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   321  		if ms.LoadMessageInfo() == nil {
   322  			ms.StoreMessageInfo(mi)
   323  		}
   324  		return ms
   325  	}
   326  	return mi.MessageOf(x)
   327  }
   328  
   329  // Deprecated: Use Node.ProtoReflect.Descriptor instead.
   330  func (*Node) Descriptor() ([]byte, []int) {
   331  	return file_wiretype_proto_rawDescGZIP(), []int{2}
   332  }
   333  
   334  func (x *Node) GetIndex() *Index {
   335  	if x != nil {
   336  		return x.Index
   337  	}
   338  	return nil
   339  }
   340  
   341  func (x *Node) GetStat() *Stat {
   342  	if x != nil {
   343  		return x.Stat
   344  	}
   345  	return nil
   346  }
   347  
   348  func (x *Node) GetXAttrs() []*XAttr {
   349  	if x != nil {
   350  		return x.XAttrs
   351  	}
   352  	return nil
   353  }
   354  
   355  func (x *Node) GetChildren() []*Child {
   356  	if x != nil {
   357  		return x.Children
   358  	}
   359  	return nil
   360  }
   361  
   362  // Stat records POSIX style file metadata. Other than the modification time,
   363  // these metadata are not interpreted by the file plumbing, but are preserved
   364  // for the benefit of external tools.
   365  type Stat struct {
   366  	state protoimpl.MessageState `protogen:"open.v1"`
   367  	// The low-order 12 bits of this field hold the standard Unix permissions,
   368  	// along with the sticky, setuid, and setgid bits. The rest are reserved and
   369  	// must be set to zero. In binary:
   370  	//
   371  	//	           owner group other
   372  	//	... +-+-+-+-----+-----+-----+   S: setuid
   373  	//	    |S|G|T|r w x|r w x|r w x|   G: setgid
   374  	//	... +-+-+-+-----+-----+-----+   T: sticky
   375  	//	     B A 9     6     3     0  « bit
   376  	Permissions   uint32        `protobuf:"varint,1,opt,name=permissions,proto3" json:"permissions,omitempty"`
   377  	FileType      Stat_FileType `protobuf:"varint,2,opt,name=file_type,json=fileType,proto3,enum=ffs.file.Stat_FileType" json:"file_type,omitempty"`
   378  	ModTime       *Timestamp    `protobuf:"bytes,3,opt,name=mod_time,json=modTime,proto3" json:"mod_time,omitempty"`
   379  	Owner         *Stat_Ident   `protobuf:"bytes,4,opt,name=owner,proto3" json:"owner,omitempty"`
   380  	Group         *Stat_Ident   `protobuf:"bytes,5,opt,name=group,proto3" json:"group,omitempty"`
   381  	unknownFields protoimpl.UnknownFields
   382  	sizeCache     protoimpl.SizeCache
   383  }
   384  
   385  func (x *Stat) Reset() {
   386  	*x = Stat{}
   387  	mi := &file_wiretype_proto_msgTypes[3]
   388  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   389  	ms.StoreMessageInfo(mi)
   390  }
   391  
   392  func (x *Stat) String() string {
   393  	return protoimpl.X.MessageStringOf(x)
   394  }
   395  
   396  func (*Stat) ProtoMessage() {}
   397  
   398  func (x *Stat) ProtoReflect() protoreflect.Message {
   399  	mi := &file_wiretype_proto_msgTypes[3]
   400  	if x != nil {
   401  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   402  		if ms.LoadMessageInfo() == nil {
   403  			ms.StoreMessageInfo(mi)
   404  		}
   405  		return ms
   406  	}
   407  	return mi.MessageOf(x)
   408  }
   409  
   410  // Deprecated: Use Stat.ProtoReflect.Descriptor instead.
   411  func (*Stat) Descriptor() ([]byte, []int) {
   412  	return file_wiretype_proto_rawDescGZIP(), []int{3}
   413  }
   414  
   415  func (x *Stat) GetPermissions() uint32 {
   416  	if x != nil {
   417  		return x.Permissions
   418  	}
   419  	return 0
   420  }
   421  
   422  func (x *Stat) GetFileType() Stat_FileType {
   423  	if x != nil {
   424  		return x.FileType
   425  	}
   426  	return Stat_REGULAR
   427  }
   428  
   429  func (x *Stat) GetModTime() *Timestamp {
   430  	if x != nil {
   431  		return x.ModTime
   432  	}
   433  	return nil
   434  }
   435  
   436  func (x *Stat) GetOwner() *Stat_Ident {
   437  	if x != nil {
   438  		return x.Owner
   439  	}
   440  	return nil
   441  }
   442  
   443  func (x *Stat) GetGroup() *Stat_Ident {
   444  	if x != nil {
   445  		return x.Group
   446  	}
   447  	return nil
   448  }
   449  
   450  // Time is the encoding of a timestamp, in seconds and nanoseconds elapsed
   451  // since the Unix epoch in UTC.
   452  type Timestamp struct {
   453  	state         protoimpl.MessageState `protogen:"open.v1"`
   454  	Seconds       uint64                 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"`
   455  	Nanos         uint32                 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"`
   456  	unknownFields protoimpl.UnknownFields
   457  	sizeCache     protoimpl.SizeCache
   458  }
   459  
   460  func (x *Timestamp) Reset() {
   461  	*x = Timestamp{}
   462  	mi := &file_wiretype_proto_msgTypes[4]
   463  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   464  	ms.StoreMessageInfo(mi)
   465  }
   466  
   467  func (x *Timestamp) String() string {
   468  	return protoimpl.X.MessageStringOf(x)
   469  }
   470  
   471  func (*Timestamp) ProtoMessage() {}
   472  
   473  func (x *Timestamp) ProtoReflect() protoreflect.Message {
   474  	mi := &file_wiretype_proto_msgTypes[4]
   475  	if x != nil {
   476  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   477  		if ms.LoadMessageInfo() == nil {
   478  			ms.StoreMessageInfo(mi)
   479  		}
   480  		return ms
   481  	}
   482  	return mi.MessageOf(x)
   483  }
   484  
   485  // Deprecated: Use Timestamp.ProtoReflect.Descriptor instead.
   486  func (*Timestamp) Descriptor() ([]byte, []int) {
   487  	return file_wiretype_proto_rawDescGZIP(), []int{4}
   488  }
   489  
   490  func (x *Timestamp) GetSeconds() uint64 {
   491  	if x != nil {
   492  		return x.Seconds
   493  	}
   494  	return 0
   495  }
   496  
   497  func (x *Timestamp) GetNanos() uint32 {
   498  	if x != nil {
   499  		return x.Nanos
   500  	}
   501  	return 0
   502  }
   503  
   504  // An Index records the size and storage locations of file data.
   505  type Index struct {
   506  	state         protoimpl.MessageState `protogen:"open.v1"`
   507  	TotalBytes    uint64                 `protobuf:"varint,1,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"`
   508  	Extents       []*Extent              `protobuf:"bytes,2,rep,name=extents,proto3" json:"extents,omitempty"` // multiple blocks
   509  	Single        []byte                 `protobuf:"bytes,3,opt,name=single,proto3" json:"single,omitempty"`   // a single block
   510  	unknownFields protoimpl.UnknownFields
   511  	sizeCache     protoimpl.SizeCache
   512  }
   513  
   514  func (x *Index) Reset() {
   515  	*x = Index{}
   516  	mi := &file_wiretype_proto_msgTypes[5]
   517  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   518  	ms.StoreMessageInfo(mi)
   519  }
   520  
   521  func (x *Index) String() string {
   522  	return protoimpl.X.MessageStringOf(x)
   523  }
   524  
   525  func (*Index) ProtoMessage() {}
   526  
   527  func (x *Index) ProtoReflect() protoreflect.Message {
   528  	mi := &file_wiretype_proto_msgTypes[5]
   529  	if x != nil {
   530  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   531  		if ms.LoadMessageInfo() == nil {
   532  			ms.StoreMessageInfo(mi)
   533  		}
   534  		return ms
   535  	}
   536  	return mi.MessageOf(x)
   537  }
   538  
   539  // Deprecated: Use Index.ProtoReflect.Descriptor instead.
   540  func (*Index) Descriptor() ([]byte, []int) {
   541  	return file_wiretype_proto_rawDescGZIP(), []int{5}
   542  }
   543  
   544  func (x *Index) GetTotalBytes() uint64 {
   545  	if x != nil {
   546  		return x.TotalBytes
   547  	}
   548  	return 0
   549  }
   550  
   551  func (x *Index) GetExtents() []*Extent {
   552  	if x != nil {
   553  		return x.Extents
   554  	}
   555  	return nil
   556  }
   557  
   558  func (x *Index) GetSingle() []byte {
   559  	if x != nil {
   560  		return x.Single
   561  	}
   562  	return nil
   563  }
   564  
   565  // An Extent describes a single contiguous span of stored data.
   566  type Extent struct {
   567  	state         protoimpl.MessageState `protogen:"open.v1"`
   568  	Base          uint64                 `protobuf:"varint,1,opt,name=base,proto3" json:"base,omitempty"`   // the starting offset
   569  	Bytes         uint64                 `protobuf:"varint,2,opt,name=bytes,proto3" json:"bytes,omitempty"` // the number of bytes in this extent
   570  	Blocks        []*Block               `protobuf:"bytes,3,rep,name=blocks,proto3" json:"blocks,omitempty"`
   571  	unknownFields protoimpl.UnknownFields
   572  	sizeCache     protoimpl.SizeCache
   573  }
   574  
   575  func (x *Extent) Reset() {
   576  	*x = Extent{}
   577  	mi := &file_wiretype_proto_msgTypes[6]
   578  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   579  	ms.StoreMessageInfo(mi)
   580  }
   581  
   582  func (x *Extent) String() string {
   583  	return protoimpl.X.MessageStringOf(x)
   584  }
   585  
   586  func (*Extent) ProtoMessage() {}
   587  
   588  func (x *Extent) ProtoReflect() protoreflect.Message {
   589  	mi := &file_wiretype_proto_msgTypes[6]
   590  	if x != nil {
   591  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   592  		if ms.LoadMessageInfo() == nil {
   593  			ms.StoreMessageInfo(mi)
   594  		}
   595  		return ms
   596  	}
   597  	return mi.MessageOf(x)
   598  }
   599  
   600  // Deprecated: Use Extent.ProtoReflect.Descriptor instead.
   601  func (*Extent) Descriptor() ([]byte, []int) {
   602  	return file_wiretype_proto_rawDescGZIP(), []int{6}
   603  }
   604  
   605  func (x *Extent) GetBase() uint64 {
   606  	if x != nil {
   607  		return x.Base
   608  	}
   609  	return 0
   610  }
   611  
   612  func (x *Extent) GetBytes() uint64 {
   613  	if x != nil {
   614  		return x.Bytes
   615  	}
   616  	return 0
   617  }
   618  
   619  func (x *Extent) GetBlocks() []*Block {
   620  	if x != nil {
   621  		return x.Blocks
   622  	}
   623  	return nil
   624  }
   625  
   626  // A Block describes the size and storage key of a data blob.
   627  type Block struct {
   628  	state         protoimpl.MessageState `protogen:"open.v1"`
   629  	Bytes         uint64                 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"` // the number of bytes in this block
   630  	Key           []byte                 `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`      // the storage key of the block data
   631  	unknownFields protoimpl.UnknownFields
   632  	sizeCache     protoimpl.SizeCache
   633  }
   634  
   635  func (x *Block) Reset() {
   636  	*x = Block{}
   637  	mi := &file_wiretype_proto_msgTypes[7]
   638  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   639  	ms.StoreMessageInfo(mi)
   640  }
   641  
   642  func (x *Block) String() string {
   643  	return protoimpl.X.MessageStringOf(x)
   644  }
   645  
   646  func (*Block) ProtoMessage() {}
   647  
   648  func (x *Block) ProtoReflect() protoreflect.Message {
   649  	mi := &file_wiretype_proto_msgTypes[7]
   650  	if x != nil {
   651  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   652  		if ms.LoadMessageInfo() == nil {
   653  			ms.StoreMessageInfo(mi)
   654  		}
   655  		return ms
   656  	}
   657  	return mi.MessageOf(x)
   658  }
   659  
   660  // Deprecated: Use Block.ProtoReflect.Descriptor instead.
   661  func (*Block) Descriptor() ([]byte, []int) {
   662  	return file_wiretype_proto_rawDescGZIP(), []int{7}
   663  }
   664  
   665  func (x *Block) GetBytes() uint64 {
   666  	if x != nil {
   667  		return x.Bytes
   668  	}
   669  	return 0
   670  }
   671  
   672  func (x *Block) GetKey() []byte {
   673  	if x != nil {
   674  		return x.Key
   675  	}
   676  	return nil
   677  }
   678  
   679  // An XAttr records the name and value of an extended attribute.
   680  // The contents of the value are not interpreted.
   681  type XAttr struct {
   682  	state         protoimpl.MessageState `protogen:"open.v1"`
   683  	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   684  	Value         []byte                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
   685  	unknownFields protoimpl.UnknownFields
   686  	sizeCache     protoimpl.SizeCache
   687  }
   688  
   689  func (x *XAttr) Reset() {
   690  	*x = XAttr{}
   691  	mi := &file_wiretype_proto_msgTypes[8]
   692  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   693  	ms.StoreMessageInfo(mi)
   694  }
   695  
   696  func (x *XAttr) String() string {
   697  	return protoimpl.X.MessageStringOf(x)
   698  }
   699  
   700  func (*XAttr) ProtoMessage() {}
   701  
   702  func (x *XAttr) ProtoReflect() protoreflect.Message {
   703  	mi := &file_wiretype_proto_msgTypes[8]
   704  	if x != nil {
   705  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   706  		if ms.LoadMessageInfo() == nil {
   707  			ms.StoreMessageInfo(mi)
   708  		}
   709  		return ms
   710  	}
   711  	return mi.MessageOf(x)
   712  }
   713  
   714  // Deprecated: Use XAttr.ProtoReflect.Descriptor instead.
   715  func (*XAttr) Descriptor() ([]byte, []int) {
   716  	return file_wiretype_proto_rawDescGZIP(), []int{8}
   717  }
   718  
   719  func (x *XAttr) GetName() string {
   720  	if x != nil {
   721  		return x.Name
   722  	}
   723  	return ""
   724  }
   725  
   726  func (x *XAttr) GetValue() []byte {
   727  	if x != nil {
   728  		return x.Value
   729  	}
   730  	return nil
   731  }
   732  
   733  // A Child records the name and storage key of a child Node.
   734  type Child struct {
   735  	state         protoimpl.MessageState `protogen:"open.v1"`
   736  	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   737  	Key           []byte                 `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
   738  	unknownFields protoimpl.UnknownFields
   739  	sizeCache     protoimpl.SizeCache
   740  }
   741  
   742  func (x *Child) Reset() {
   743  	*x = Child{}
   744  	mi := &file_wiretype_proto_msgTypes[9]
   745  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   746  	ms.StoreMessageInfo(mi)
   747  }
   748  
   749  func (x *Child) String() string {
   750  	return protoimpl.X.MessageStringOf(x)
   751  }
   752  
   753  func (*Child) ProtoMessage() {}
   754  
   755  func (x *Child) ProtoReflect() protoreflect.Message {
   756  	mi := &file_wiretype_proto_msgTypes[9]
   757  	if x != nil {
   758  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   759  		if ms.LoadMessageInfo() == nil {
   760  			ms.StoreMessageInfo(mi)
   761  		}
   762  		return ms
   763  	}
   764  	return mi.MessageOf(x)
   765  }
   766  
   767  // Deprecated: Use Child.ProtoReflect.Descriptor instead.
   768  func (*Child) Descriptor() ([]byte, []int) {
   769  	return file_wiretype_proto_rawDescGZIP(), []int{9}
   770  }
   771  
   772  func (x *Child) GetName() string {
   773  	if x != nil {
   774  		return x.Name
   775  	}
   776  	return ""
   777  }
   778  
   779  func (x *Child) GetKey() []byte {
   780  	if x != nil {
   781  		return x.Key
   782  	}
   783  	return nil
   784  }
   785  
   786  // An Ident represents the identity of a user or group.
   787  type Stat_Ident struct {
   788  	state         protoimpl.MessageState `protogen:"open.v1"`
   789  	Id            uint64                 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`    // numeric ID
   790  	Name          string                 `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // human-readable name
   791  	unknownFields protoimpl.UnknownFields
   792  	sizeCache     protoimpl.SizeCache
   793  }
   794  
   795  func (x *Stat_Ident) Reset() {
   796  	*x = Stat_Ident{}
   797  	mi := &file_wiretype_proto_msgTypes[10]
   798  	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   799  	ms.StoreMessageInfo(mi)
   800  }
   801  
   802  func (x *Stat_Ident) String() string {
   803  	return protoimpl.X.MessageStringOf(x)
   804  }
   805  
   806  func (*Stat_Ident) ProtoMessage() {}
   807  
   808  func (x *Stat_Ident) ProtoReflect() protoreflect.Message {
   809  	mi := &file_wiretype_proto_msgTypes[10]
   810  	if x != nil {
   811  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   812  		if ms.LoadMessageInfo() == nil {
   813  			ms.StoreMessageInfo(mi)
   814  		}
   815  		return ms
   816  	}
   817  	return mi.MessageOf(x)
   818  }
   819  
   820  // Deprecated: Use Stat_Ident.ProtoReflect.Descriptor instead.
   821  func (*Stat_Ident) Descriptor() ([]byte, []int) {
   822  	return file_wiretype_proto_rawDescGZIP(), []int{3, 0}
   823  }
   824  
   825  func (x *Stat_Ident) GetId() uint64 {
   826  	if x != nil {
   827  		return x.Id
   828  	}
   829  	return 0
   830  }
   831  
   832  func (x *Stat_Ident) GetName() string {
   833  	if x != nil {
   834  		return x.Name
   835  	}
   836  	return ""
   837  }
   838  
   839  var File_wiretype_proto protoreflect.FileDescriptor
   840  
   841  const file_wiretype_proto_rawDesc = "" +
   842  	"\n" +
   843  	"\x0ewiretype.proto\x12\bffs.file\x1a\x19index/indexpb/index.proto\"\xa1\x01\n" +
   844  	"\x06Object\x12$\n" +
   845  	"\x04node\x18\x01 \x01(\v2\x0e.ffs.file.NodeH\x00R\x04node\x12$\n" +
   846  	"\x04root\x18\x02 \x01(\v2\x0e.ffs.file.RootH\x00R\x04root\x12(\n" +
   847  	"\x05index\x18\x03 \x01(\v2\x10.ffs.index.IndexH\x00R\x05index\x12\x18\n" +
   848  	"\aversion\x18\x0f \x01(\x04R\aversionB\a\n" +
   849  	"\x05value\"\x89\x01\n" +
   850  	"\x04Root\x12\x19\n" +
   851  	"\bfile_key\x18\x01 \x01(\fR\afileKey\x12 \n" +
   852  	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x1b\n" +
   853  	"\tindex_key\x18\x04 \x01(\fR\bindexKey\x12\x1b\n" +
   854  	"\tchain_key\x18\x06 \x01(\fR\bchainKeyJ\x04\b\x03\x10\x04J\x04\b\x05\x10\x06\"\xa8\x01\n" +
   855  	"\x04Node\x12%\n" +
   856  	"\x05index\x18\x01 \x01(\v2\x0f.ffs.file.IndexR\x05index\x12\"\n" +
   857  	"\x04stat\x18\x02 \x01(\v2\x0e.ffs.file.StatR\x04stat\x12(\n" +
   858  	"\ax_attrs\x18\x03 \x03(\v2\x0f.ffs.file.XAttrR\x06xAttrs\x12+\n" +
   859  	"\bchildren\x18\x04 \x03(\v2\x0f.ffs.file.ChildR\bchildren\"\x8f\x03\n" +
   860  	"\x04Stat\x12 \n" +
   861  	"\vpermissions\x18\x01 \x01(\rR\vpermissions\x124\n" +
   862  	"\tfile_type\x18\x02 \x01(\x0e2\x17.ffs.file.Stat.FileTypeR\bfileType\x12.\n" +
   863  	"\bmod_time\x18\x03 \x01(\v2\x13.ffs.file.TimestampR\amodTime\x12*\n" +
   864  	"\x05owner\x18\x04 \x01(\v2\x14.ffs.file.Stat.IdentR\x05owner\x12*\n" +
   865  	"\x05group\x18\x05 \x01(\v2\x14.ffs.file.Stat.IdentR\x05group\x1a+\n" +
   866  	"\x05Ident\x12\x0e\n" +
   867  	"\x02id\x18\x01 \x01(\x04R\x02id\x12\x12\n" +
   868  	"\x04name\x18\x02 \x01(\tR\x04name\"z\n" +
   869  	"\bFileType\x12\v\n" +
   870  	"\aREGULAR\x10\x00\x12\r\n" +
   871  	"\tDIRECTORY\x10\x01\x12\v\n" +
   872  	"\aSYMLINK\x10\x02\x12\n" +
   873  	"\n" +
   874  	"\x06SOCKET\x10\x03\x12\x0e\n" +
   875  	"\n" +
   876  	"NAMED_PIPE\x10\x04\x12\n" +
   877  	"\n" +
   878  	"\x06DEVICE\x10\x05\x12\x0f\n" +
   879  	"\vCHAR_DEVICE\x10\x06\x12\f\n" +
   880  	"\aUNKNOWN\x10\x94\x03\";\n" +
   881  	"\tTimestamp\x12\x18\n" +
   882  	"\aseconds\x18\x01 \x01(\x04R\aseconds\x12\x14\n" +
   883  	"\x05nanos\x18\x02 \x01(\rR\x05nanos\"l\n" +
   884  	"\x05Index\x12\x1f\n" +
   885  	"\vtotal_bytes\x18\x01 \x01(\x04R\n" +
   886  	"totalBytes\x12*\n" +
   887  	"\aextents\x18\x02 \x03(\v2\x10.ffs.file.ExtentR\aextents\x12\x16\n" +
   888  	"\x06single\x18\x03 \x01(\fR\x06single\"[\n" +
   889  	"\x06Extent\x12\x12\n" +
   890  	"\x04base\x18\x01 \x01(\x04R\x04base\x12\x14\n" +
   891  	"\x05bytes\x18\x02 \x01(\x04R\x05bytes\x12'\n" +
   892  	"\x06blocks\x18\x03 \x03(\v2\x0f.ffs.file.BlockR\x06blocks\"/\n" +
   893  	"\x05Block\x12\x14\n" +
   894  	"\x05bytes\x18\x01 \x01(\x04R\x05bytes\x12\x10\n" +
   895  	"\x03key\x18\x02 \x01(\fR\x03key\"1\n" +
   896  	"\x05XAttr\x12\x12\n" +
   897  	"\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" +
   898  	"\x05value\x18\x02 \x01(\fR\x05value\"-\n" +
   899  	"\x05Child\x12\x12\n" +
   900  	"\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" +
   901  	"\x03key\x18\x02 \x01(\fR\x03keyB*Z(github.com/creachadair/ffs/file/wiretypeb\x06proto3"
   902  
   903  var (
   904  	file_wiretype_proto_rawDescOnce sync.Once
   905  	file_wiretype_proto_rawDescData []byte
   906  )
   907  
   908  func file_wiretype_proto_rawDescGZIP() []byte {
   909  	file_wiretype_proto_rawDescOnce.Do(func() {
   910  		file_wiretype_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_wiretype_proto_rawDesc), len(file_wiretype_proto_rawDesc)))
   911  	})
   912  	return file_wiretype_proto_rawDescData
   913  }
   914  
   915  var file_wiretype_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   916  var file_wiretype_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
   917  var file_wiretype_proto_goTypes = []any{
   918  	(Stat_FileType)(0),    // 0: ffs.file.Stat.FileType
   919  	(*Object)(nil),        // 1: ffs.file.Object
   920  	(*Root)(nil),          // 2: ffs.file.Root
   921  	(*Node)(nil),          // 3: ffs.file.Node
   922  	(*Stat)(nil),          // 4: ffs.file.Stat
   923  	(*Timestamp)(nil),     // 5: ffs.file.Timestamp
   924  	(*Index)(nil),         // 6: ffs.file.Index
   925  	(*Extent)(nil),        // 7: ffs.file.Extent
   926  	(*Block)(nil),         // 8: ffs.file.Block
   927  	(*XAttr)(nil),         // 9: ffs.file.XAttr
   928  	(*Child)(nil),         // 10: ffs.file.Child
   929  	(*Stat_Ident)(nil),    // 11: ffs.file.Stat.Ident
   930  	(*indexpb.Index)(nil), // 12: ffs.index.Index
   931  }
   932  var file_wiretype_proto_depIdxs = []int32{
   933  	3,  // 0: ffs.file.Object.node:type_name -> ffs.file.Node
   934  	2,  // 1: ffs.file.Object.root:type_name -> ffs.file.Root
   935  	12, // 2: ffs.file.Object.index:type_name -> ffs.index.Index
   936  	6,  // 3: ffs.file.Node.index:type_name -> ffs.file.Index
   937  	4,  // 4: ffs.file.Node.stat:type_name -> ffs.file.Stat
   938  	9,  // 5: ffs.file.Node.x_attrs:type_name -> ffs.file.XAttr
   939  	10, // 6: ffs.file.Node.children:type_name -> ffs.file.Child
   940  	0,  // 7: ffs.file.Stat.file_type:type_name -> ffs.file.Stat.FileType
   941  	5,  // 8: ffs.file.Stat.mod_time:type_name -> ffs.file.Timestamp
   942  	11, // 9: ffs.file.Stat.owner:type_name -> ffs.file.Stat.Ident
   943  	11, // 10: ffs.file.Stat.group:type_name -> ffs.file.Stat.Ident
   944  	7,  // 11: ffs.file.Index.extents:type_name -> ffs.file.Extent
   945  	8,  // 12: ffs.file.Extent.blocks:type_name -> ffs.file.Block
   946  	13, // [13:13] is the sub-list for method output_type
   947  	13, // [13:13] is the sub-list for method input_type
   948  	13, // [13:13] is the sub-list for extension type_name
   949  	13, // [13:13] is the sub-list for extension extendee
   950  	0,  // [0:13] is the sub-list for field type_name
   951  }
   952  
   953  func init() { file_wiretype_proto_init() }
   954  func file_wiretype_proto_init() {
   955  	if File_wiretype_proto != nil {
   956  		return
   957  	}
   958  	file_wiretype_proto_msgTypes[0].OneofWrappers = []any{
   959  		(*Object_Node)(nil),
   960  		(*Object_Root)(nil),
   961  		(*Object_Index)(nil),
   962  	}
   963  	type x struct{}
   964  	out := protoimpl.TypeBuilder{
   965  		File: protoimpl.DescBuilder{
   966  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   967  			RawDescriptor: unsafe.Slice(unsafe.StringData(file_wiretype_proto_rawDesc), len(file_wiretype_proto_rawDesc)),
   968  			NumEnums:      1,
   969  			NumMessages:   11,
   970  			NumExtensions: 0,
   971  			NumServices:   0,
   972  		},
   973  		GoTypes:           file_wiretype_proto_goTypes,
   974  		DependencyIndexes: file_wiretype_proto_depIdxs,
   975  		EnumInfos:         file_wiretype_proto_enumTypes,
   976  		MessageInfos:      file_wiretype_proto_msgTypes,
   977  	}.Build()
   978  	File_wiretype_proto = out.File
   979  	file_wiretype_proto_goTypes = nil
   980  	file_wiretype_proto_depIdxs = nil
   981  }