pw_file: Use std::span<char> for file names
Uses std::span<char> for file names to reduce necesary casting, and
adds documentation to clarify the file name isn't expected to be null
terminated.
Also updates FileSystemEntry::Permissions() and
FileSystemEntry::FileId() to be const as typical implementations
shouldn't need mutability to report these.
Requires: pigweed-internal:15862
Change-Id: Iac77c4a6b67e5c7efe37d7b5b37267fa694b9bb1
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/63165
Reviewed-by: Ewout van Bekkum <ewout@google.com>
Commit-Queue: Armando Montanez <amontanez@google.com>
diff --git a/pw_file/flat_file_system.cc b/pw_file/flat_file_system.cc
index d347903..c7d2133 100644
--- a/pw_file/flat_file_system.cc
+++ b/pw_file/flat_file_system.cc
@@ -34,11 +34,10 @@
namespace pw::file {
-using FileSystemEntry = FlatFileSystemService::FileSystemEntry;
+using Entry = FlatFileSystemService::Entry;
Status FlatFileSystemService::EnumerateFile(
- FileSystemEntry& entry,
- pw::file::ListResponse::StreamEncoder& output_encoder) {
+ Entry& entry, pw::file::ListResponse::StreamEncoder& output_encoder) {
StatusWithSize sws = entry.Name(file_name_buffer_);
if (!sws.ok()) {
return sws.status();
@@ -56,7 +55,7 @@
}
void FlatFileSystemService::EnumerateAllFiles(RawServerWriter& writer) {
- for (FileSystemEntry* entry : entries_) {
+ for (Entry* entry : entries_) {
PW_DCHECK_NOTNULL(entry);
// For now, don't try to pack entries.
pw::file::ListResponse::MemoryEncoder encoder(writer.PayloadBuffer());
@@ -95,7 +94,7 @@
}
// Find and enumerate the file requested.
- Result<FileSystemEntry*> result = FindFile(file_name_view);
+ Result<Entry*> result = FindFile(file_name_view);
if (!result.ok()) {
writer.Finish(result.status());
return;
@@ -135,10 +134,9 @@
return StatusWithSize(Status::InvalidArgument(), 0);
}
-Result<FileSystemEntry*> FlatFileSystemService::FindFile(
- std::string_view file_name) {
+Result<Entry*> FlatFileSystemService::FindFile(std::string_view file_name) {
Status search_status;
- for (FileSystemEntry* entry : entries_) {
+ for (Entry* entry : entries_) {
PW_DCHECK_NOTNULL(entry);
StatusWithSize sws = entry->Name(file_name_buffer_);
@@ -164,7 +162,7 @@
}
Status FlatFileSystemService::FindAndDeleteFile(std::string_view file_name) {
- Result<FileSystemEntry*> result = FindFile(file_name);
+ Result<Entry*> result = FindFile(file_name);
if (!result.ok()) {
return result.status();
}