@@ -2017,22 +2017,28 @@ define_sql_function! {
2017
2017
/// let jsonb = diesel::select(jsonb_object::<Array<Text>,_>(vec!["hello","world"]))
2018
2018
/// .get_result::<Value>(connection)?;
2019
2019
/// let expected:Value = serde_json::json!({"hello":"world"});
2020
- /// assert_eq!(expected,jsonb);
2020
+ /// assert_eq!(expected, jsonb);
2021
2021
///
2022
- /// let jsonb = diesel::select(jsonb_object::<Array<Text>,_>(vec!["hello","world","John","Doe"]))
2022
+ /// let jsonb = diesel::select(jsonb_object::<Array<Text>, _>(vec!["hello","world","John","Doe"]))
2023
2023
/// .get_result::<Value>(connection)?;
2024
2024
/// let expected:Value = serde_json::json!({"hello": "world","John": "Doe"});
2025
- /// assert_eq!(expected,jsonb);
2025
+ /// assert_eq!(expected, jsonb);
2026
2026
///
2027
- /// let jsonb = diesel::select(jsonb_object::<Array<Text>, _>(vec!["hello","world","John"] ))
2028
- /// .get_result::<Value>(connection);
2029
- /// assert!(jsonb.is_err ());
2027
+ /// let jsonb = diesel::select(jsonb_object::<Nullable< Array<Text>>, _>(None::<Vec<String>> ))
2028
+ /// .get_result::<Option< Value>> (connection)? ;
2029
+ /// assert!(jsonb.is_none ());
2030
2030
///
2031
2031
/// let empty:Vec<String> = Vec::new();
2032
2032
/// let jsonb = diesel::select(jsonb_object::<Array<Nullable<Text>>,_>(empty))
2033
+ /// .get_result::<Value>(connection)?;
2034
+ /// let expected = serde_json::json!({});
2035
+ /// assert_eq!(expected, jsonb);
2036
+ ///
2037
+ /// let jsonb = diesel::select(jsonb_object::<Array<Text>, _>(vec!["hello","world","John"]))
2033
2038
/// .get_result::<Value>(connection);
2034
2039
/// assert!(jsonb.is_err());
2035
2040
///
2041
+ ///
2036
2042
/// # Ok(())
2037
2043
/// # }
2038
2044
/// ```
@@ -2060,19 +2066,19 @@ define_sql_function! {
2060
2066
/// # use diesel::sql_types::{Array, Nullable, Text};
2061
2067
/// # use serde_json::Value;
2062
2068
/// # let connection = &mut establish_connection();
2063
- /// let jsonb = diesel::select(jsonb_object_with_keys_and_values::<Array<Text>, _, _>(
2069
+ /// let jsonb = diesel::select(jsonb_object_with_keys_and_values::<Array<Text>, Array<Text>, _, _>(
2064
2070
/// vec!["hello","John"],vec!["world","Doe"]))
2065
2071
/// .get_result::<Value>(connection)?;
2066
2072
/// let expected:Value = serde_json::json!({"hello":"world","John":"Doe"});
2067
- /// assert_eq!(expected,jsonb);
2073
+ /// assert_eq!(expected, jsonb);
2068
2074
///
2069
- /// let jsonb = diesel::select(jsonb_object_with_keys_and_values::<Nullable<Array<Text>>, _, _>(
2075
+ /// let jsonb = diesel::select(jsonb_object_with_keys_and_values::<Nullable<Array<Text>>, Nullable<Array<Text>>, _, _>(
2070
2076
/// Some(vec!["hello","John"]),None::<Vec<String>>))
2071
2077
/// .get_result::<Option<Value>>(connection)?;
2072
2078
/// assert_eq!(None::<Value>,jsonb);
2073
2079
///
2074
2080
/// let empty: Vec<String> = Vec::new();
2075
- /// let jsonb = diesel::select(jsonb_object_with_keys_and_values::<Array<Text>, _, _>(
2081
+ /// let jsonb = diesel::select(jsonb_object_with_keys_and_values::<Array<Text>, Array<Text>, _, _>(
2076
2082
/// vec!["hello","John"],empty))
2077
2083
/// .get_result::<Value>(connection);
2078
2084
/// assert!(jsonb.is_err());
@@ -2081,7 +2087,11 @@ define_sql_function! {
2081
2087
/// # }
2082
2088
/// ```
2083
2089
#[ sql_name = "jsonb_object" ]
2084
- fn jsonb_object_with_keys_and_values<Arr : TextArrayOrNullableTextArray + MaybeNullableValue <Jsonb >>(
2085
- keys: Arr , values: Arr
2086
- ) -> Arr :: Out ;
2090
+ fn jsonb_object_with_keys_and_values<
2091
+ Arr1 : TextArrayOrNullableTextArray + SingleValue ,
2092
+ Arr2 : TextArrayOrNullableTextArray + CombinedNullableValue <Arr1 , Jsonb >
2093
+ >(
2094
+ keys: Arr1 ,
2095
+ values: Arr2
2096
+ ) -> Arr2 :: Out ;
2087
2097
}
0 commit comments