This homework assignment is about getting used to programming in Rust with a small yet substantial project! The project is implementing a complete self-contained simulation of a file system with a custom CLI interface!
As this project is quite all encompassing as it goes for foundational Rust features, you will need to make good use of your reading resources! With what truly little time we have in class, you will need to rely on the reading material to get you the full picture. The sections below give you direct and indirect help with organizing your thoughts about structs, memory management, and references in Rust.
In "The Rust Language Book" read:
Optionally for help with the homework:
(These are a bit of a stretch goal, but it will help you understand the concepts of the homework better)
While it's not one of your required materials, the Rust by Example docs are associated with the Rust Language Book and are a great resource for understanding the concepts in the book in a more direct programmatic way. You should go through all of it but for now, Read section 3: Custom Types and Section 9: Functions.
Watch the later half of this amazing guided talk about data-driven programming by Nic Barker! While it's not in Rust (It's in C# for Unity), the concepts are universal and will help you understand the importance of structuring your data in a way that makes the best use of your resources! (The link should take you to the correct time stamp, but if it doesn't, skip to 25:50. The previous content is still good, but it is mostly review of general programming concepts)
This programming assignment is about implementing a complete self-contained simulation of a file system with a custom CLI interface!
Your repository will contain the following files:
CMSI-3510-HW1/
āāā .gitignore
āāā doughmain_expansion/
ā āāā Cargo.toml
ā āāā src/
ā āāā cli_commands/
ā ā āāā mod.rs
ā ā āāā cd.rs
ā ā āāā ls.rs
ā ā āāā mkdir.rs
ā ā āāā pwd.rs
ā ā āāā rmd.rs
ā ā āāā rmf.rs
ā ā āāā touch.rs
ā ā āāā signin.rs
ā ā āāā signout.rs
ā ā āāā read.rs
ā ā āāā write.rs
ā āāā lib.rs
ā āāā main.rs
āāā README.md
Need a refresher on how to interact with the HW for this course? Watch the helper video posted to Zoom via the link below!
You can find the GitHub Classroom assignment link and the Brightspace turn in link using the buttons at the top of this section.