Я запрашиваю свою базу данных и получаю структуру Vec<Bookable>
, используя дизельную библиотеку.
#[derive(QueryableByName)]
pub struct Bookable {
#[sql_type = "BigInt"]
pub id: i64,
#[sql_type = "Text"]
pub title: String
}
Когда я запрашиваю элементы, я могу получить доступ к результату, но невозможно преобразовать макрос Vec<Bookable>
в json!
:
pub fn get_terms(conn: &MysqlConnection) -> Vec<Bookable> {
diesel::sql_query(r#"SELECT title, LAST_INSERT_ID() 'id' from bookable_term;"#)
.load::<Bookable>(conn).expect("Query failed")
}
И позже я называю это так:
let conn = connect();
let terms = bookable::get_terms(&conn);
json!({ "data": {
"items": terms }
})
Вопрос в том, как поместить термины в этот объект и отправить весь массив в API? Я могу привести в порядок json как это:
"items:" &vec!["to", "be", "or", "not", "to", "be"]
Но когда дело доходит до существующего Vec, я получаю ошибку компилятора. Я использую Rocket
, поэтому он предоставляет rocket_contrib::json::JsonValue
, который содержит json!
macro