From 8e6d22e635c5b8e3a517ddc9dfb814a8e9daaf4f Mon Sep 17 00:00:00 2001 From: Francois Bonneau Date: Wed, 18 Mar 2026 14:02:26 +0100 Subject: [PATCH 1/5] fix(IO): display the list of output filenames --- include/geode/basic/detail/geode_output_impl.hpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/include/geode/basic/detail/geode_output_impl.hpp b/include/geode/basic/detail/geode_output_impl.hpp index 4ce00accb..3873d3a00 100644 --- a/include/geode/basic/detail/geode_output_impl.hpp +++ b/include/geode/basic/detail/geode_output_impl.hpp @@ -65,10 +65,17 @@ namespace geode { std::filesystem::create_directories( directories ); } - auto result = output->write( object ); + auto output_filenames = output->write( object ); + std::string joined_filenames; + for( const auto& output_filename : output_filenames ) + { + if( !joined_filenames.empty() ) + joined_filenames += ", "; + joined_filenames += output_filename; + } Logger::info( - type, " saved in ", filename, " in ", timer.duration() ); - return result; + type, " saved in ", _filenames, " in ", timer.duration() ); + return output_filenames; } } // namespace detail } // namespace geode From e0d88fb78a0403c373331719027ce184fe717141 Mon Sep 17 00:00:00 2001 From: francoisbonneau <24669995+francoisbonneau@users.noreply.github.com> Date: Wed, 18 Mar 2026 13:03:31 +0000 Subject: [PATCH 2/5] Apply prepare changes --- .clang-tidy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.clang-tidy b/.clang-tidy index 9918cacd8..b0398498e 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -27,7 +27,7 @@ CheckOptions: - key: readability-identifier-length.MinimumLoopCounterNameLength value: 1 - key: readability-identifier-length.IgnoredVariableNames - value: "^[_defijkptuvw]$" + value: "^[_defijkptuvwxyz]$" # More options here: https://clang.llvm.org/extra/clang-tidy/checks/readability/identifier-naming.html - key: readability-identifier-naming.NamespaceCase value: lower_case From 725864ca5967a3ed2e209281c423ad32e3583eea Mon Sep 17 00:00:00 2001 From: Francois Bonneau Date: Wed, 18 Mar 2026 14:14:58 +0100 Subject: [PATCH 3/5] AB comments --- include/geode/basic/detail/geode_output_impl.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/geode/basic/detail/geode_output_impl.hpp b/include/geode/basic/detail/geode_output_impl.hpp index 3873d3a00..5b5f0a1e8 100644 --- a/include/geode/basic/detail/geode_output_impl.hpp +++ b/include/geode/basic/detail/geode_output_impl.hpp @@ -69,10 +69,10 @@ namespace geode std::string joined_filenames; for( const auto& output_filename : output_filenames ) { - if( !joined_filenames.empty() ) - joined_filenames += ", "; - joined_filenames += output_filename; + absl::StrAppend( &joined_filenames, output_filename, ", " ) } + joined_filenames.pop_back(); + joined_filenames.pop_back(); Logger::info( type, " saved in ", _filenames, " in ", timer.duration() ); return output_filenames; From 8fb6bf812947dbc0c03916306fb6f2881db64e0a Mon Sep 17 00:00:00 2001 From: Francois Bonneau Date: Wed, 18 Mar 2026 14:16:21 +0100 Subject: [PATCH 4/5] tidy --- .../geode/basic/detail/geode_output_impl.hpp | 71 +++++++++---------- 1 file changed, 33 insertions(+), 38 deletions(-) diff --git a/include/geode/basic/detail/geode_output_impl.hpp b/include/geode/basic/detail/geode_output_impl.hpp index 5b5f0a1e8..236a494b8 100644 --- a/include/geode/basic/detail/geode_output_impl.hpp +++ b/include/geode/basic/detail/geode_output_impl.hpp @@ -35,47 +35,42 @@ #include #include -namespace geode +namespace geode::detail { - namespace detail + template < typename Factory > + [[nodiscard]] std::unique_ptr< typename Factory::BaseClass > + geode_object_output_writer( std::string_view& filename ) { - template < typename Factory > - [[nodiscard]] std::unique_ptr< typename Factory::BaseClass > - geode_object_output_writer( std::string_view& filename ) + filename = absl::StripAsciiWhitespace( filename ); + const auto extension = + absl::AsciiStrToLower( extension_from_filename( filename ) ); + OPENGEODE_EXCEPTION( Factory::has_creator( extension ), + "Unknown extension: ", extension ); + return Factory::create( + extension, expand_predefined_folders( filename ) ); + } + + template < typename Factory, typename Object > + std::vector< std::string > geode_object_output_impl( + std::string_view type, const Object& object, std::string_view filename ) + { + const Timer timer; + auto output = geode_object_output_writer< Factory >( filename ); + const auto directories = filepath_without_filename( filename ); + if( !directories.empty() ) { - filename = absl::StripAsciiWhitespace( filename ); - const auto extension = - absl::AsciiStrToLower( extension_from_filename( filename ) ); - OPENGEODE_EXCEPTION( Factory::has_creator( extension ), - "Unknown extension: ", extension ); - return Factory::create( - extension, expand_predefined_folders( filename ) ); + std::filesystem::create_directories( directories ); } - - template < typename Factory, typename Object > - std::vector< std::string > geode_object_output_impl( - std::string_view type, - const Object& object, - std::string_view filename ) + auto output_filenames = output->write( object ); + std::string joined_filenames; + for( const auto& output_filename : output_filenames ) { - const Timer timer; - auto output = geode_object_output_writer< Factory >( filename ); - const auto directories = filepath_without_filename( filename ); - if( !directories.empty() ) - { - std::filesystem::create_directories( directories ); - } - auto output_filenames = output->write( object ); - std::string joined_filenames; - for( const auto& output_filename : output_filenames ) - { - absl::StrAppend( &joined_filenames, output_filename, ", " ) - } - joined_filenames.pop_back(); - joined_filenames.pop_back(); - Logger::info( - type, " saved in ", _filenames, " in ", timer.duration() ); - return output_filenames; + absl::StrAppend( &joined_filenames, output_filename, ", " ) } - } // namespace detail -} // namespace geode + joined_filenames.pop_back(); + joined_filenames.pop_back(); + Logger::info( + type, " saved in ", joined_filenames, " in ", timer.duration() ); + return output_filenames; + } +} // namespace geode::detail From 48ed5d6dd662fed1cc182ece87edbcb1c314b9fa Mon Sep 17 00:00:00 2001 From: Francois Bonneau Date: Wed, 18 Mar 2026 14:48:13 +0100 Subject: [PATCH 5/5] typo --- include/geode/basic/detail/geode_output_impl.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/geode/basic/detail/geode_output_impl.hpp b/include/geode/basic/detail/geode_output_impl.hpp index 236a494b8..a9e375de9 100644 --- a/include/geode/basic/detail/geode_output_impl.hpp +++ b/include/geode/basic/detail/geode_output_impl.hpp @@ -65,7 +65,7 @@ namespace geode::detail std::string joined_filenames; for( const auto& output_filename : output_filenames ) { - absl::StrAppend( &joined_filenames, output_filename, ", " ) + absl::StrAppend( &joined_filenames, output_filename, ", " ); } joined_filenames.pop_back(); joined_filenames.pop_back();