Еще не запускал но дизель оказался не страшный
diesel::insert_into(settings::table)
.values(&setting)
.on_conflict(key)
.do_update()
.set(value.eq(excluded(value)))
.execute(&mut conn)
.context("Error saving new post")?;
правда генерит всякое и надо утилиту запускать, но я подозреваю можно и обойтись, разбираться не стану пока что.
Правда дизель помедленнее чем rusqlite, но там такие разницы, что для хэловорда пофиг.
Зато для поддержки постгри потом не придется пилить трейт на каждый вариант с репозиториями, а то я уже опечалился этим. Пришлось бы делать трейт фабрики запросов, и две реализации, в целом не сложно, но возня. Попробую к дизелю привыкнуть.