summaryrefslogtreecommitdiff
path: root/src/devices/file.rs
Commit message (Collapse)AuthorAge
* Rewrite emulatorv1.0.0-alpha1Ben Bridle2024-10-28
| | | | | | | | | | | | | | | This is a complete rewrite and restructure of the entire emulator project, as part of the effort in locking down the Bedrock specification and in creating much better tooling for creating and using Bedrock programs. This commit adds a command-line argument scheme, an embedded assembler, a headless emulator for use in non-graphical environments, deferred window creation for programs that do not access the screen device, and new versions of phosphor and bedrock-core. The new version of phosphor supports multi-window programs, which will make it possible to implement program forking in the system device later on, and the new version of bedrock-core implements the final core specification.
* Improve performance of hierarchical file navigationBen Bridle2024-08-13
| | | | | | | | The most recently closed directory listing is cached instead of being discarded. The next time a directory is to be opened, if the file path is the same as the cached directory, the cached directory listing is used in order to save the entire listing from having to be regenerated. This is expected to result in performance gains on Windows.
* Refactor the file deviceBen Bridle2024-08-07
| | | | | | | | This is the Windows side of the refactoring job. The windows crate has been added as a dependency in order to get a list of available drives by drive letter, and a virtual top-level root directory has been implemented in the Windows code to make it possible for programs to hierarchically navigate between available drives.
* Refactor the file deviceBen Bridle2024-08-06
| | | | | | | | | | | | | | | | The major feature of this refactor is the creation of BedrockFilePath, a type which can be losslessly converted into an operating-system specific path or a Bedrock-style byte path. It also prevents file paths which can't be represented as Bedrock-style byte paths from being constructed, and allows the use of a base directory which acts as an inescapable sandbox. BedrockFilePath will support the creation of a virtual root directory on Windows which will allow navigation between drive letters via the standard hierarchical navigation ports. This commit has been tested on Linux, but not yet Windows. Further work is expected before the new code will work on Windows.
* Set error flag when file device cannot ascend to parent directoryBen Bridle2024-08-04
| | | | This should have been happening previously, but was missed.
* Fix compilation on LinuxBen Bridle2024-08-04
| | | | | Some Windows-only library functions were added in during a previous commit while I was developing on Windows.
* Update file device to compile on WindowsBen Bridle2024-07-30
| | | | | | | | Construction of OsStrings is handled differently between Windows and Unix, using platform-specific APIs. The method OsStr::as_bytes was also changed to OsStr::as_encoded_bytes at some point between Rust versions 1.69 and 1.80.
* Set file operation success flag when ascending and descendingBen Bridle2024-06-30
| | | | | This is to allow the program to detect whether the previous ascend or descend operation succeeded.
* Update file device for releaseBen Bridle2024-06-09
| | | | | | | | | | | | | | Removed the sandbox directory of the file device, so the file device is now sandboxed to the root directory. The sandboxing code has been left intact for future use. Permission flags have been added to the file device to allow each category of file operation to be enabled or disabled in the emulator. The default directory is set to be the current working directory from when the emulator boots. This is the directory which is used when the program attempts to ascend to the parent directory when no entry is currently open.
* Simplify file device debug messagesBen Bridle2024-04-24
|
* Flush file contents each frame and when closing the fileBen Bridle2024-04-24
|
* Implement new file device interfaceBen Bridle2024-01-31
| | | | | This is a complete redesign of the file device. The most notable addition is the ability to ascend and descend the file tree.
* First commitv0.1.0Ben Bridle2023-12-24