| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | 
							- syntax = "proto3";
 
- package db;
 
- import "repos/protobuf/gogoproto/gogo.proto";
 
- import "lib/protocol/bep.proto";
 
- option (gogoproto.goproto_getters_all) = false;
 
- option (gogoproto.sizer_all) = false;
 
- option (gogoproto.protosizer_all) = true;
 
- option (gogoproto.goproto_unkeyed_all) = false;
 
- option (gogoproto.goproto_unrecognized_all) = false;
 
- option (gogoproto.goproto_sizecache_all) = false;
 
- message FileVersion {
 
-     protocol.Vector version = 1 [(gogoproto.nullable) = false];
 
-     bytes           device  = 2;
 
-     bool            invalid = 3;
 
- }
 
- message VersionList {
 
-     option (gogoproto.goproto_stringer) = false;
 
-     repeated FileVersion versions = 1 [(gogoproto.nullable) = false];
 
- }
 
- // Must be the same as FileInfo but without the blocks field
 
- message FileInfoTruncated {
 
-     option (gogoproto.goproto_stringer) = false;
 
-     string                name           = 1;
 
-     int64                 size           = 3;
 
-     int64                 modified_s     = 5;
 
-     uint64                modified_by    = 12 [(gogoproto.customtype) = "github.com/syncthing/syncthing/lib/protocol.ShortID", (gogoproto.nullable) = false];
 
-     protocol.Vector       version        = 9 [(gogoproto.nullable) = false];
 
-     int64                 sequence       = 10;
 
-     // repeated BlockInfo Blocks         = 16
 
-     string                symlink_target = 17;
 
-     bytes                 blocks_hash    = 18;
 
-     protocol.FileInfoType type           = 2;
 
-     uint32                permissions    = 4;
 
-     int32                 modified_ns    = 11;
 
-     int32                 block_size     = 13 [(gogoproto.customname) = "RawBlockSize"];
 
-     // see bep.proto
 
-     uint32 local_flags = 1000;
 
-     bool deleted        = 6;
 
-     bool invalid        = 7 [(gogoproto.customname) = "RawInvalid"];
 
-     bool no_permissions = 8;
 
- }
 
- // BlockList is the structure used to store block lists
 
- message BlockList {
 
-     repeated protocol.BlockInfo Blocks = 1 [(gogoproto.nullable) = false];
 
- }
 
- // BlocksHashOnly is used to only unmarshal the block list hash from a FileInfo
 
- message BlocksHashOnly {
 
-     bytes blocks_hash = 18;
 
- }
 
- // For each folder and device we keep one of these to track the current
 
- // counts and sequence. We also keep one for the global state of the folder.
 
- message Counts {
 
-     int32  files       = 1;
 
-     int32  directories = 2;
 
-     int32  symlinks    = 3;
 
-     int32  deleted     = 4;
 
-     int64  bytes       = 5;
 
-     int64  sequence    = 6; // zero for the global state
 
-     bytes  deviceID    = 17; // device ID for remote devices, or special values for local/global
 
-     uint32 localFlags  = 18; // the local flag for this count bucket
 
- }
 
- message CountsSet {
 
-     repeated Counts counts  = 1  [(gogoproto.nullable) = false];
 
-     int64           created = 2; // unix nanos
 
- }
 
 
  |