0 | module System.File.Error
4 | import System.File.Support
5 | import public System.File.Types
9 | %foreign supportC "idris2_fileError"
10 | "node:lambda:x=>(x===1?1:0)"
11 | prim__error : FilePtr -> PrimIO Int
13 | %foreign supportC "idris2_fileErrno"
14 | supportNode "fileErrno"
15 | prim__fileErrno : PrimIO Int
20 | GenericFileError Int
30 | returnError : HasIO io => io (Either FileError a)
32 | = do err <- primIO prim__fileErrno
38 | 3 => PermissionDenied
40 | _ => GenericFileError (err-5)
43 | Show FileError where
44 | show (GenericFileError errno) = strerror errno
45 | show FileReadError = "File Read Error"
46 | show FileWriteError = "File Write Error"
47 | show FileNotFound = "File Not Found"
48 | show PermissionDenied = "Permission Denied"
49 | show FileExists = "File Exists"
53 | fileError : HasIO io => File -> io Bool
54 | fileError (FHandle f)
55 | = do x <- primIO $
prim__error f