Сначала ты пытаешься выстроить красивую архитектуру.
Потом ты пытаешься писать идиоматический код.
Потом ты хочешь тщательно всё оттестировать, не перекраивая архитектуру приложения просто ради тестов.
...
...
...
Под #[cfg(test)] в код добавляется thread_local сырой указатель, который из unsafe-секции подменяется в начале каждого теста, потому что иначе замокать не выходит.
...
Выстраивается тонкий баланс энергий, работающий и сам по себе, и под tarpaulin'ом, и с любым количеством тредов.
...
...
Имеем архитектурно красивый, идиоматический, и даже неплохо оттестированный rust-код, который сегфолтится, забирая с собой процесс базы данных, при неудачном исправлении юнит-теста.
Блеск и нищета всего и вся 😆
@rayslava в итоге ты раст теперь везде стараешься использовать или только для небольших cli утилит?