#pragma once #include "engine/framework/assets/resource_bundle.h" #include "engine/framework/core/execution_context.h" #include #include #include namespace engine::models::reuse { struct ReuseAssets { assets::ResourceBundle resources; std::shared_ptr tensors; }; std::shared_ptr load_reuse_assets(const std::filesystem::path & path); class ReuseRuntime { public: ReuseRuntime(std::shared_ptr assets, core::ExecutionContext & execution, assets::TensorStorageType storage); ~ReuseRuntime(); std::vector restore(const std::vector & waveform, int sample_rate); void process_chunks(size_t count, int sample_rate, const std::function &)> & source, const std::function &)> & sink); std::vector> restore_batch( const std::vector> & waveforms, int sample_rate); private: class Impl; std::unique_ptr impl_; }; } // namespace engine::models::reuse