@@ -10,9 +10,7 @@ use serde::Deserialize;
1010// TODO: remove once async fn in traits become stable
1111use async_trait:: async_trait;
1212
13- use sqlx:: { query, PgPool , Row } ;
14-
15- use futures:: stream:: StreamExt ;
13+ use sqlx:: { cursor:: Cursor , query, PgPool , Row } ;
1614
1715/// A TileMill (.tm2source) data structure.
1816///
@@ -120,7 +118,13 @@ impl TM2Source {
120118
121119#[ async_trait]
122120impl TileSource for TM2Source {
123- async fn render_mvt ( & self , pool : & PgPool , zoom : u8 , x : i32 , y : i32 ) -> Result < Vec < u8 > , sqlx:: Error > {
121+ async fn render_mvt (
122+ & self ,
123+ pool : & PgPool ,
124+ zoom : u8 ,
125+ x : i32 ,
126+ y : i32 ,
127+ ) -> Result < Vec < u8 > , sqlx:: Error > {
124128 let z: i32 = zoom. into ( ) ;
125129 let tile_bounds = get_epsg_3857_tile_bounds ( self . pixel_scale , zoom, x, y, 0 ) ;
126130 let buffer_sizes = self . buffer_sizes ( ) ;
@@ -147,14 +151,9 @@ impl TileSource for TM2Source {
147151
148152 let mut raw_tile: Vec < u8 > = Vec :: new ( ) ;
149153 let mut stream = query. fetch ( & mut conn) ;
150- while let Some ( result) = stream. next ( ) . await {
151- match result {
152- Ok ( row) => {
153- let layer: Vec < u8 > = row. get ( 0 ) ;
154- raw_tile. extend_from_slice ( & layer) ;
155- }
156- Err ( e) => return Err ( e) ,
157- }
154+ while let Some ( row) = stream. next ( ) . await ? {
155+ let layer: Vec < u8 > = row. get ( 0 ) ;
156+ raw_tile. extend_from_slice ( & layer) ;
158157 }
159158
160159 Ok ( raw_tile)
0 commit comments