@@ -21,19 +21,25 @@ data ValidModeWrite : Mode -> Type where
21 VMWReadW : ValidModeWrite ReadWrite
21 VMWReadW : ValidModeWrite ReadWrite
22 VMWReadWT : ValidModeWrite ReadWriteTruncate
22 VMWReadWT : ValidModeWrite ReadWriteTruncate
24+||| The file handle which will be used as a State Transition
25+||| resource in the `IO` and `IOExcept` implementations of `File`.
27+||| @mode The `Mode` that the handle was generated under.
24public export
29public export
25data FileHandle : (mode : Mode) -> Type where
30data FileHandle : (mode : Mode) -> Type where
26 FH : File -> FileHandle mode
31 FH : File -> FileHandle mode
33+||| Description of state transition operations on a file.
28public export
34public export
29interface File (m : Type -> Type) where
35interface File (m : Type -> Type) where
30 FileHandleI : Mode -> Type
36 FileHandleI : Mode -> Type
32 ||| Open a file.
38 ||| Open a file.
34− ||| @ fname the filename.
40+ ||| @fname the filename.
35− ||| @ mode the mode; either Read, WriteTruncate, Append, ReadWrite,
41+ ||| @mode the mode; either Read, WriteTruncate, Append, ReadWrite,
36− ||| ReadWriteTruncate, or ReadAppend
42+ ||| ReadWriteTruncate, or ReadAppend
38 open : (fname : String)
44 open : (fname : String)
39 -> (mode : Mode)
45 -> (mode : Mode)
@@ -70,25 +76,35 @@ interface File (m : Type -> Type) where
70 ||| to while being read.
76 ||| to while being read.
72 ||| Returns an error if fname is not a normal file.
78 ||| Returns an error if fname is not a normal file.
73 readFile : (fileName : String)
80 readFile : (fileName : String)
74 -> ST m (Either FileError String) []
81 -> ST m (Either FileError String) []
76 ||| Write a complete line to the file.
83 ||| Write a complete line to the file.
85+ ||| @string The string to be written to file.
77 writeString : (fileHandle : Var)
87 writeString : (fileHandle : Var)
78 -> (string : String)
88 -> (string : String)
79 -> {auto prf : ValidModeWrite mode}
89 -> {auto prf : ValidModeWrite mode}
80 -> ST m (Either FileError ()) [ fileHandle ::: (FileHandleI mode) ]
90 -> ST m (Either FileError ()) [ fileHandle ::: (FileHandleI mode) ]
82 ||| Write a complete line to the file.
92 ||| Write a complete line to the file.
94+ ||| @string The text to be written to file.
83 writeLine : (fileHandle : Var)
96 writeLine : (fileHandle : Var)
84 -> (string : String)
97 -> (string : String)
85 -> {auto prf : ValidModeWrite mode}
98 -> {auto prf : ValidModeWrite mode}
86 -> ST m (Either FileError ()) [ fileHandle ::: (FileHandleI mode) ]
99 -> ST m (Either FileError ()) [ fileHandle ::: (FileHandleI mode) ]
88− -- ||| Create a file and write contents to the file.
101+ ||| Create a file and write contents to the file.
90− writeFile : (fileName : String)
103+ ||| @fname The fileName of the file.
104+ ||| @string The text to be written to file.
106+ writeFile : (fname : String)
91− -> (string : String)
107+ -> (string : String)
92 -> ST m (Either FileError ()) []
108 -> ST m (Either FileError ()) []
94public export
110public export