| 88 | } |
| 89 | |
| 90 | [[nodiscard]] static std::unique_ptr< BaseClass > create( |
| 91 | const Key &key, Args... args ) |
| 92 | { |
| 93 | const auto &store = get_store(); |
| 94 | const auto creator = store.find( key ); |
| 95 | OpenGeodeBasicException::check_exception( creator != store.end(), |
| 96 | nullptr, OpenGeodeException::TYPE::data, |
| 97 | "[Factory::create] Factory does not " |
| 98 | "contain the requested key" ); |
| 99 | return creator->second( std::forward< Args >( args )... ); |
| 100 | } |
| 101 | |
| 102 | [[nodiscard]] static absl::FixedArray< Key > list_creators() |
| 103 | { |