diff --git a/fuseutil/file_system.go b/fuseutil/file_system.go index 288bf9d..612a766 100644 --- a/fuseutil/file_system.go +++ b/fuseutil/file_system.go @@ -26,6 +26,9 @@ import ( // // Each method should fill in appropriate response fields for the supplied op // and return an error status, but not call Repand. +// +// See NotImplementedFileSystem for a convenient way to embed default +// implementations for methods you don't care about. type FileSystem interface { Init(*fuseops.InitOp) error LookUpInode(*fuseops.LookUpInodeOp) error diff --git a/fuseutil/not_implemented_file_system.go b/fuseutil/not_implemented_file_system.go new file mode 100644 index 0000000..0eb71b2 --- /dev/null +++ b/fuseutil/not_implemented_file_system.go @@ -0,0 +1,24 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package fuseutil + +// A FileSystem that returns ENOSYS for all methods. Embed this in your struct +// to inherit default implementations for the methods you don't care about, +// ensuring your struct will continue to implement FileSystem even as new +// methods are added. +type NotImplementedFileSystem struct { +} + +var _ FileSystem = &NotImplementedFileSystem{}