MCPcopy
hub / github.com/rclone/rclone / Mask

Method Mask

fs/features.go:378–479  ·  view source on GitHub ↗

Mask the Features with the Fs passed in Only optional features which are implemented in both the original Fs AND the one passed in will be advertised. Any features which aren't in both will be set to false/nil, except for UnWrap/Wrap which will be left untouched.

(ctx context.Context, f Fs)

Source from the content-addressed store, hash-verified

376// aren't in both will be set to false/nil, except for UnWrap/Wrap which
377// will be left untouched.
378func (ft *Features) Mask(ctx context.Context, f Fs) *Features {
379 mask := f.Features()
380 ft.CaseInsensitive = ft.CaseInsensitive && mask.CaseInsensitive
381 ft.DuplicateFiles = ft.DuplicateFiles && mask.DuplicateFiles
382 ft.ReadMimeType = ft.ReadMimeType && mask.ReadMimeType
383 ft.WriteMimeType = ft.WriteMimeType && mask.WriteMimeType
384 ft.ReadMetadata = ft.ReadMetadata && mask.ReadMetadata
385 ft.WriteMetadata = ft.WriteMetadata && mask.WriteMetadata
386 ft.UserMetadata = ft.UserMetadata && mask.UserMetadata
387 ft.ReadDirMetadata = ft.ReadDirMetadata && mask.ReadDirMetadata
388 ft.WriteDirMetadata = ft.WriteDirMetadata && mask.WriteDirMetadata
389 ft.WriteDirSetModTime = ft.WriteDirSetModTime && mask.WriteDirSetModTime
390 ft.UserDirMetadata = ft.UserDirMetadata && mask.UserDirMetadata
391 ft.DirModTimeUpdatesOnWrite = ft.DirModTimeUpdatesOnWrite && mask.DirModTimeUpdatesOnWrite
392 ft.CanHaveEmptyDirectories = ft.CanHaveEmptyDirectories && mask.CanHaveEmptyDirectories
393 ft.BucketBased = ft.BucketBased && mask.BucketBased
394 ft.BucketBasedRootOK = ft.BucketBasedRootOK && mask.BucketBasedRootOK
395 ft.SetTier = ft.SetTier && mask.SetTier
396 ft.GetTier = ft.GetTier && mask.GetTier
397 ft.ServerSideAcrossConfigs = ft.ServerSideAcrossConfigs && mask.ServerSideAcrossConfigs
398 // ft.IsLocal = ft.IsLocal && mask.IsLocal Don't propagate IsLocal
399 ft.SlowModTime = ft.SlowModTime && mask.SlowModTime
400 ft.SlowHash = ft.SlowHash && mask.SlowHash
401 ft.FilterAware = ft.FilterAware && mask.FilterAware
402 ft.PartialUploads = ft.PartialUploads && mask.PartialUploads
403 ft.NoMultiThreading = ft.NoMultiThreading && mask.NoMultiThreading
404 // ft.Overlay = ft.Overlay && mask.Overlay don't propagate Overlay
405 ft.ChunkWriterDoesntSeek = ft.ChunkWriterDoesntSeek && mask.ChunkWriterDoesntSeek
406 ft.DoubleSlash = ft.DoubleSlash && mask.DoubleSlash
407
408 if mask.Purge == nil {
409 ft.Purge = nil
410 }
411 if mask.Copy == nil {
412 ft.Copy = nil
413 }
414 if mask.Move == nil {
415 ft.Move = nil
416 }
417 if mask.DirMove == nil {
418 ft.DirMove = nil
419 }
420 if mask.MkdirMetadata == nil {
421 ft.MkdirMetadata = nil
422 }
423 if mask.ChangeNotify == nil {
424 ft.ChangeNotify = nil
425 }
426 // if mask.UnWrap == nil {
427 // ft.UnWrap = nil
428 // }
429 // if mask.Wrapper == nil {
430 // ft.Wrapper = nil
431 // }
432 if mask.DirCacheFlush == nil {
433 ft.DirCacheFlush = nil
434 }
435 if mask.PublicLink == nil {

Callers 11

NewFsFunction · 0.80
NewFsFunction · 0.80
NewFsFunction · 0.80
NewFsFunction · 0.80
NewFsFunction · 0.80
NewFsFunction · 0.80
NewFunction · 0.80
NewFunction · 0.80
NewFunction · 0.80
NewFsFunction · 0.80
NewFsFunction · 0.80

Calls 3

DisableListMethod · 0.95
GetConfigFunction · 0.70
FeaturesMethod · 0.65

Tested by

no test coverage detected