#include "transcribe-arch.h"
#include <cstring>
namespace transcribe {
namespace parakeet {
extern const Arch arch;
}
namespace cohere {
extern const Arch arch;
}
namespace canary {
extern const Arch arch;
}
namespace qwen3_asr {
extern const Arch arch;
}
namespace voxtral {
extern const Arch arch;
}
namespace voxtral_realtime {
extern const Arch arch;
}
namespace canary_qwen {
extern const Arch arch;
}
namespace whisper {
extern const Arch arch;
}
namespace moonshine {
extern const Arch arch;
}
namespace moonshine_streaming {
extern const Arch arch;
}
namespace sensevoice {
extern const Arch arch;
}
namespace funasr_nano {
extern const Arch arch;
}
namespace gigaam {
extern const Arch arch;
}
namespace granite {
extern const Arch arch;
}
namespace granite_nar {
extern const Arch arch;
}
namespace medasr {
extern const Arch arch;
}
const Arch * find_arch(const char * name) {
if (name == nullptr) {
return nullptr;
}
static const Arch * const k_archs[] = {
¶keet::arch, &cohere::arch, &canary::arch, &qwen3_asr::arch, &voxtral::arch,
&voxtral_realtime::arch, &canary_qwen::arch, &whisper::arch, &moonshine::arch, &moonshine_streaming::arch,
&sensevoice::arch, &funasr_nano::arch, &gigaam::arch, &granite::arch, &granite_nar::arch,
&medasr::arch,
};
constexpr size_t k_n = sizeof(k_archs) / sizeof(k_archs[0]);
for (size_t i = 0; i < k_n; ++i) {
const Arch * a = k_archs[i];
if (a == nullptr || a->name == nullptr) {
continue;
}
if (std::strcmp(a->name, name) == 0) {
return a;
}
}
return nullptr;
}
}