github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/fs/override_dir.go (about)

     1  package fs
     2  
     3  // OverrideDirectory is a wrapper to override the Remote for an
     4  // Directory
     5  type OverrideDirectory struct {
     6  	Directory
     7  	remote string
     8  }
     9  
    10  // NewOverrideDirectory returns an OverrideDirectoryObject which will
    11  // return the remote specified
    12  func NewOverrideDirectory(oi Directory, remote string) *OverrideDirectory {
    13  	// re-wrap an OverrideDirectory
    14  	if or, ok := oi.(*OverrideDirectory); ok {
    15  		return &OverrideDirectory{
    16  			Directory: or.Directory,
    17  			remote:    remote,
    18  		}
    19  	}
    20  	return &OverrideDirectory{
    21  		Directory: oi,
    22  		remote:    remote,
    23  	}
    24  }
    25  
    26  // Remote returns the overridden remote name
    27  func (o *OverrideDirectory) Remote() string {
    28  	return o.remote
    29  }
    30  
    31  // String returns the overridden remote name
    32  func (o *OverrideDirectory) String() string {
    33  	return o.remote
    34  }