@@ -138,9 +138,16 @@ applyCreateFile (J.CreateFile _ uri options) =
138
138
where
139
139
shouldOverwrite :: Bool
140
140
shouldOverwrite = case options of
141
- Just (J. CreateFileOptions True _) -> True -- `overwrite` is True
142
- Just (J. CreateFileOptions False _) -> False -- `overwrite` wins over `ignoreIfExists`
143
- Nothing -> False
141
+ Nothing -> False -- default
142
+ Just (J. CreateFileOptions Nothing Nothing ) -> False -- default
143
+ Just (J. CreateFileOptions Nothing (Just True ) ) -> False -- `ignoreIfExists` is True
144
+ Just (J. CreateFileOptions Nothing (Just False )) -> True -- `ignoreIfExists` is False
145
+ Just (J. CreateFileOptions (Just True ) Nothing ) -> True -- `overwrite` is True
146
+ Just (J. CreateFileOptions (Just True ) (Just True ) ) -> True -- `overwrite` wins over `ignoreIfExists`
147
+ Just (J. CreateFileOptions (Just True ) (Just False )) -> True -- `overwrite` is True
148
+ Just (J. CreateFileOptions (Just False ) Nothing ) -> False -- `overwrite` is False
149
+ Just (J. CreateFileOptions (Just False ) (Just True ) ) -> False -- `overwrite` is False
150
+ Just (J. CreateFileOptions (Just False ) (Just False )) -> False -- `overwrite` wins over `ignoreIfExists`
144
151
145
152
applyRenameFile :: J. RenameFile -> VFS -> VFS
146
153
applyRenameFile (J. RenameFile _ oldUri' newUri' options) vfs =
@@ -158,9 +165,16 @@ applyRenameFile (J.RenameFile _ oldUri' newUri' options) vfs =
158
165
where
159
166
shouldOverwrite :: Bool
160
167
shouldOverwrite = case options of
161
- Just (J. RenameFileOptions True _) -> True -- `overwrite` is True
162
- Just (J. RenameFileOptions False _) -> False -- `overwrite` wins over `ignoreIfExists`
163
- Nothing -> False
168
+ Nothing -> False -- default
169
+ Just (J. RenameFileOptions Nothing Nothing ) -> False -- default
170
+ Just (J. RenameFileOptions Nothing (Just True ) ) -> False -- `ignoreIfExists` is True
171
+ Just (J. RenameFileOptions Nothing (Just False )) -> True -- `ignoreIfExists` is False
172
+ Just (J. RenameFileOptions (Just True ) Nothing ) -> True -- `overwrite` is True
173
+ Just (J. RenameFileOptions (Just True ) (Just True ) ) -> True -- `overwrite` wins over `ignoreIfExists`
174
+ Just (J. RenameFileOptions (Just True ) (Just False )) -> True -- `overwrite` is True
175
+ Just (J. RenameFileOptions (Just False ) Nothing ) -> False -- `overwrite` is False
176
+ Just (J. RenameFileOptions (Just False ) (Just True ) ) -> False -- `overwrite` is False
177
+ Just (J. RenameFileOptions (Just False ) (Just False )) -> False -- `overwrite` wins over `ignoreIfExists`
164
178
165
179
-- NOTE: we are ignoring the `recursive` option here because we don't know which file is a directory
166
180
applyDeleteFile :: J. DeleteFile -> VFS -> VFS
0 commit comments