ActraStride / ActraStride/Tessitura

Implement Basic Directory Traversal

Open
#1 0 comments 0 reactions 0 assignees View on GitHub
good first issue
Dominant language
Rust
Stars
2
Forks
0
PR merge metrics
No merged PRs in 30d

Description

## Background
As part of our Version 0.1.0 InDev release focused on directory structure mapping, we need to implement the core functionality to traverse and map directory structures. This is the foundation upon which all other features will be built.

## Description
Create the core functionality to traverse a specified directory path and collect information about all files and subdirectories within it. This should handle various path formats, permissions, and directory sizes.

## Requirements
- Implement a function that accepts a directory path as input
- Validate the path exists and is accessible
- Collect names of all files and subdirectories at the given path
- Support both absolute and relative paths
- Handle edge cases (empty directories, permission denied, etc.)
- Return results in a structured format that can be expanded in future versions

## Technical Notes
- Use Rust's standard library `std::fs` module for filesystem operations
- Consider using the `walkdir` crate for more efficient directory traversal
- Implement proper error handling for inaccessible directories or files
- Optimize for memory efficiency when handling large directories
- Maintain OS compatibility (Windows/Unix path separators)

## Acceptance Criteria
- Function correctly traverses a directory and identifies all contained files and subdirectories
- Handles errors gracefully with descriptive error messages
- Returns data in a structured format suitable for future enhancements
- Includes basic tests verifying functionality with different directory structures
- Code follows project style guidelines and includes documentation
- Performance is reasonable for directories with up to 1000 entries

## Estimated Effort
Medium (2-3 days)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.