diesel::pg::expression::dsl

Function array_prepend

source
pub fn array_prepend<T: SingleValue, Arr: ArrayOrNullableArray<Inner = T> + SingleValue, e, a>(
    e: e,
    a: a,
) -> array_prepend<T, Arr, e, a>
where e: AsExpression<T>, a: AsExpression<Arr>,
Available on crate feature postgres_backend only.
Expand description

Prepends an element to the beginning of an array

ยงExample

let ints = diesel::select(array_prepend::<Integer, Array<_>, _, _>(3, vec![1, 2]))
    .get_result::<Vec<i32>>(connection)?;
assert_eq!(vec![3, 1, 2], ints);

let ints = diesel::select(array_prepend::<Nullable<Integer>, Array<_>, _, _>(None::<i32>, vec![Some(1), Some(2)]))
    .get_result::<Vec<Option<i32>>>(connection)?;
assert_eq!(vec![None, Some(1), Some(2)], ints);

let ints = diesel::select(array_prepend::<Integer, Nullable<Array<_>>, _, _>(3, None::<Vec<i32>>))
    .get_result::<Vec<i32>>(connection)?;
assert_eq!(vec![3], ints);

let ints = diesel::select(array_prepend::<Nullable<Integer>, Nullable<Array<_>>, _, _>(None::<i32>, None::<Vec<i32>>))
    .get_result::<Vec<Option<i32>>>(connection)?;
assert_eq!(vec![None], ints);