Очередь задач с контролем памяти в Rust
Я пытаюсь написать программу, которая ищет информацию в файлах по заданным параметрам. Изначально собираются пути до файлов, создается очередь. Далее запускаются несколько потоков, которые читают содержимое и осуществляют поиск.
Хотелось бы сделать так, чтобы количество запущенных одновременно потоков было ограничено не заданным изначально числом, а ресурсами системы, в частности количеством доступной оперативной памяти.
Как бы вы реализовали что-то подобное?