github.com/avfs/avfs@v0.33.1-0.20240303173310-c6ba67c33eb7/curdir.go (about) 1 // 2 // Copyright 2024 The AVFS authors 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 17 package avfs 18 19 // CurDirMgr is the interface that manages the current directory. 20 type CurDirMgr interface { 21 // CurDir returns the current directory. 22 CurDir() string 23 24 // SetCurDir sets the current directory. 25 SetCurDir(curDir string) error 26 } 27 28 // CurDirFn provides current directory functions to a file system. 29 type CurDirFn struct { 30 curDir string // curDir is the current directory. 31 } 32 33 // CurDir returns the current directory. 34 func (cdf *CurDirFn) CurDir() string { 35 return cdf.curDir 36 } 37 38 // SetCurDir sets the current directory. 39 func (cdf *CurDirFn) SetCurDir(curDir string) error { 40 cdf.curDir = curDir 41 42 return nil 43 }