rclone/fs
Nick Craig-Wood 1fa258c2b4 Define a new Features() method for Fs
Optional interfaces are becoming more important in rclone,
--track-renames and --backup-dir both rely on them.

Up to this point rclone has used interface upgrades to define optional
behaviour on Fs objects.  However when one Fs object wraps another it
is very difficult for this scheme to work accurately.  rclone has
relied on specific error messages being returned when the interface
isn't supported - this is unsatisfactory because it means you have to
call the interface to see whether it is supported.

This change enables accurate detection of optional interfaces by use
of a Features struct as returned by an obligatory Fs.Features()
method.  The Features struct contains flags and function pointers
which can be tested against nil to see whether they can be used.

As a result crypt and hubic can accurately reflect the capabilities of
the underlying Fs they are wrapping.
2017-01-16 17:33:25 +00:00
..
all Implement crypt for encrypted remotes - #219 2016-08-23 17:45:37 +01:00
testdata Add configuration file encryption 2016-02-16 16:32:05 +01:00
accounting_other.go Fix non-windows/non-unix builds for bwlimit/SIGUSR2 feature and add a mutex 2016-10-30 19:20:16 +00:00
accounting_unix.go Fix non-windows/non-unix builds for bwlimit/SIGUSR2 feature and add a mutex 2016-10-30 19:20:16 +00:00
accounting.go Only start bandwidth ticker when necessary. 2017-01-04 19:03:49 -08:00
buffer_test.go Convert more tests to use assert/require 2016-06-30 15:45:30 +01:00
buffer.go Convert to using github.com/pkg/errors everywhere 2016-06-13 17:43:03 +01:00
closed_conn_win.go Unwrap errors properly for patform specific connection retry code. 2016-06-10 13:48:41 +01:00
closed_conn.go Retry errors which indicate the connection closed prematurely. 2016-04-29 17:29:34 +01:00
config_read_password_unsupported.go Stub out ReadPassword on plan9 and solaris to fix compilation 2016-02-21 10:31:53 +00:00
config_read_password.go Stub out ReadPassword on plan9 and solaris to fix compilation 2016-02-21 10:31:53 +00:00
config_test.go Allow all options to be set from environment variables 2017-01-03 22:42:47 +00:00
config.go Implement --backup-dir - fixes #98 2017-01-16 17:33:25 +00:00
driveletter_windows.go windows: Stop drive letters (eg C:) getting mixed up with remotes (eg drive:) 2015-02-07 22:32:51 +00:00
driveletter.go windows: Stop drive letters (eg C:) getting mixed up with remotes (eg drive:) 2015-02-07 22:32:51 +00:00
error.go Make sure wrapped retry/fatal errors are never nil to avoid panic 2016-12-13 16:02:14 +00:00
filter_test.go Fix filters to add ** rules to directory rules 2017-01-05 19:33:49 +00:00
filter.go Fix filters to add ** rules to directory rules 2017-01-05 19:33:49 +00:00
flags_test.go Allow all options to be set from environment variables 2017-01-03 22:42:47 +00:00
flags.go Allow all options to be set from environment variables 2017-01-03 22:42:47 +00:00
fs.go Define a new Features() method for Fs 2017-01-16 17:33:25 +00:00
glob_test.go Convert to using github.com/pkg/errors everywhere 2016-06-13 17:43:03 +01:00
glob.go Convert to using github.com/pkg/errors everywhere 2016-06-13 17:43:03 +01:00
hash_test.go Convert more tests to use assert/require 2016-06-30 15:45:30 +01:00
hash.go Fix incomplete local hashes. 2016-06-19 16:51:49 +02:00
http_new.go Redo http Transport code 2016-09-12 17:50:19 +01:00
http_old.go Redo http Transport code 2016-09-12 17:50:19 +01:00
http_test.go Remove Authorization: headers from --dump-headers output 2016-11-02 15:53:43 +00:00
http.go Remove Authorization: headers from --dump-headers output 2016-11-02 15:53:43 +00:00
lister_test.go Stop single file and --files-from operations iterating through the source bucket. 2016-10-07 11:39:39 +01:00
lister.go Return error on not found from ListFn 2017-01-12 10:07:59 +00:00
make_test_files.go A script to make a directory heirarchy for testing 2016-03-05 20:26:15 +00:00
operations_test.go Define a new Features() method for Fs 2017-01-16 17:33:25 +00:00
operations.go Define a new Features() method for Fs 2017-01-16 17:33:25 +00:00
options.go Add options for Open and implement Range for all remotes 2016-10-05 21:03:56 +01:00
sync_test.go Define a new Features() method for Fs 2017-01-16 17:33:25 +00:00
sync.go Define a new Features() method for Fs 2017-01-16 17:33:25 +00:00
test_all.go crypt: add to integration tests 2016-08-23 17:45:37 +01:00
version.go Version v1.35 2017-01-02 15:33:06 +00:00
versioncheck.go Move versioncheck so it happens earlier in the compile process. 2016-09-12 17:50:19 +01:00