Просмотр поста

.
reaper

Так-то лучше. Макросы рулят и педалят.

Композиция кстати тоже. Можно вот так просто взять и реализовать нужные методы для структуры из какой-нибудь библиотеки. При этом видимы они будут только при условии, что типаж был заимпортирован, в отличии от каких нибудь рубей, где это работает через жопу своего рода обезьяний патчинг, из-за чего потом велика вероятность, что придётся искать, какой же мудак добавил какой-то метод в некоторый тип (стандартной) библиотеки и теперь всё сломалось.

extern crate postgres;

use postgres::rows::Rows;
use postgres::types::FromSql;

trait FetchColumn {
    fn fetch_column<T: FromSql>(&self) -> T;
}

impl <'a> FetchColumn for Rows<'a> {
    fn fetch_column<T: FromSql>(&self) -> T {
        self.iter().next().map(|row| row.get(0)).unwrap()
    }
}
Прикрепленные файлы: