protected override Result OpenDirectoryImpl(out IDirectory directory, string path, OpenDirectoryMode mode) { directory = default; path = PathTools.Normalize(path); if (!FileTable.TryOpenDirectory(path, out SaveFindPosition position)) { return(ResultFs.PathNotFound.Log()); } directory = new SaveDataDirectory(this, position, mode); return(Result.Success); }
protected override Result DoOpenDirectory(out IDirectory directory, U8Span path, OpenDirectoryMode mode) { UnsafeHelpers.SkipParamInit(out directory); Unsafe.SkipInit(out FsPath normalizedPath); Result rc = PathTool.Normalize(normalizedPath.Str, out _, path, false, false); if (rc.IsFailure()) { return(rc); } if (!FileTable.TryOpenDirectory(normalizedPath, out SaveFindPosition position)) { return(ResultFs.PathNotFound.Log()); } directory = new SaveDataDirectory(this, position, mode); return(Result.Success); }
protected override Result DoOpenDirectory(out IDirectory directory, U8Span path, OpenDirectoryMode mode) { directory = default; FsPath normalizedPath; unsafe { _ = &normalizedPath; } // workaround for CS0165 Result rc = PathTool.Normalize(normalizedPath.Str, out _, path, false, false); if (rc.IsFailure()) { return(rc); } if (!FileTable.TryOpenDirectory(normalizedPath, out SaveFindPosition position)) { return(ResultFs.PathNotFound.Log()); } directory = new SaveDataDirectory(this, position, mode); return(Result.Success); }