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();
   }