pub fn array_replace<Arr: ArrayOrNullableArray<Inner = T> + SingleValue, T: SingleValue, a, e, r>(
a: a,
e: e,
r: r,
) -> array_replace<Arr, T, a, e, r>
Available on crate feature
postgres_backend
only.Expand description
Replace all occurrences of an element in an array with a given element
ยงExample
let ints = diesel::select(array_replace::<Array<_>, Integer, _, _, _>(
vec![1, 2, 5, 4],
5,
3,
))
.get_result::<Vec<i32>>(connection)?;
assert_eq!(vec![1, 2, 3, 4], ints);
let ints = diesel::select(array_replace::<Array<_>, Nullable<Integer>, _, _, _>(
vec![Some(1), Some(2), Some(3)],
Some(3),
None::<i32>,
))
.get_result::<Vec<Option<i32>>>(connection)?;
assert_eq!(vec![Some(1), Some(2), None], ints);
let ints = diesel::select(array_replace::<Nullable<Array<_>>, Integer, _, _, _>(
None::<Vec<i32>>,
1,
2,
))
.get_result::<Option<Vec<i32>>>(connection)?;
let ints = diesel::select(array_replace::<
Nullable<Array<_>>,
Nullable<Integer>,
_,
_,
_,
>(None::<Vec<i32>>, None::<i32>, Some(1)))
.get_result::<Option<Vec<Option<i32>>>>(connection)?;
assert_eq!(None, ints);