@@ -57,7 +57,7 @@ pub type Result<T> = result::Result<T, Box<dyn Error + Send + Sync>>;
5757/// #
5858/// # use schema::users;
5959/// # use diesel::backend::{self, Backend};
60- /// # use diesel::deserialize::{Queryable, FromSql};
60+ /// # use diesel::deserialize::{self, Queryable, FromSql};
6161/// # use diesel::sql_types::Text;
6262/// #
6363/// struct LowercaseString(String);
@@ -75,8 +75,8 @@ pub type Result<T> = result::Result<T, Box<dyn Error + Send + Sync>>;
7575/// {
7676/// type Row = String;
7777///
78- /// fn build(s: String) -> Self {
79- /// LowercaseString(s.to_lowercase())
78+ /// fn build(s: String) -> deserialize::Result< Self> {
79+ /// Ok( LowercaseString(s.to_lowercase() ))
8080/// }
8181/// }
8282///
@@ -107,7 +107,7 @@ pub type Result<T> = result::Result<T, Box<dyn Error + Send + Sync>>;
107107/// # include!("doctest_setup.rs");
108108/// #
109109/// use schema::users;
110- /// use diesel::deserialize::Queryable;
110+ /// use diesel::deserialize::{self, Queryable} ;
111111///
112112/// # /*
113113/// type DB = diesel::sqlite::Sqlite;
@@ -122,11 +122,11 @@ pub type Result<T> = result::Result<T, Box<dyn Error + Send + Sync>>;
122122/// impl Queryable<users::SqlType, DB> for User {
123123/// type Row = (i32, String);
124124///
125- /// fn build(row: Self::Row) -> Self {
126- /// User {
125+ /// fn build(row: Self::Row) -> deserialize::Result< Self> {
126+ /// Ok( User {
127127/// id: row.0,
128128/// name: row.1.to_lowercase(),
129- /// }
129+ /// })
130130/// }
131131/// }
132132///
@@ -143,7 +143,7 @@ pub type Result<T> = result::Result<T, Box<dyn Error + Send + Sync>>;
143143/// # Ok(())
144144/// # }
145145/// ```
146- pub trait Queryable < ST , DB >
146+ pub trait Queryable < ST , DB > : Sized
147147where
148148 DB : Backend ,
149149{
@@ -153,7 +153,7 @@ where
153153 type Row : FromStaticSqlRow < ST , DB > ;
154154
155155 /// Construct an instance of this type
156- fn build ( row : Self :: Row ) -> Self ;
156+ fn build ( row : Self :: Row ) -> Result < Self > ;
157157}
158158
159159#[ doc( inline) ]
@@ -394,7 +394,7 @@ where
394394{
395395 fn build_from_row < ' a > ( row : & impl Row < ' a , DB > ) -> Result < Self > {
396396 let row = <T :: Row as FromStaticSqlRow < ST , DB > >:: build_from_row ( row) ?;
397- Ok ( T :: build ( row) )
397+ T :: build ( row)
398398 }
399399}
400400
0 commit comments