@@ -437,99 +437,147 @@ pub fn from_table(table: Table) -> Result<Vec<serde_json::Map<String, Value>>, c
437437 for i in 0 ..chunk. len ( ) {
438438 let value = match chunk. data_type ( ) {
439439 Point ( _, dimension) => match dimension {
440- Dimension :: XY => Value :: from ( & chunk. as_point_2d ( ) . value_as_geo ( i) ) ,
441- Dimension :: XYZ => Value :: from ( & chunk. as_point_3d ( ) . value_as_geo ( i) ) ,
440+ Dimension :: XY => {
441+ Value :: from ( & chunk. as_ref ( ) . as_point :: < 2 > ( ) . value_as_geo ( i) )
442+ }
443+ Dimension :: XYZ => {
444+ Value :: from ( & chunk. as_ref ( ) . as_point :: < 3 > ( ) . value_as_geo ( i) )
445+ }
442446 } ,
443447 LineString ( _, dimension) => match dimension {
444- Dimension :: XY => Value :: from ( & chunk. as_line_string_2d ( ) . value_as_geo ( i) ) ,
445- Dimension :: XYZ => Value :: from ( & chunk. as_line_string_3d ( ) . value_as_geo ( i) ) ,
448+ Dimension :: XY => {
449+ Value :: from ( & chunk. as_ref ( ) . as_line_string :: < 2 > ( ) . value_as_geo ( i) )
450+ }
451+ Dimension :: XYZ => {
452+ Value :: from ( & chunk. as_ref ( ) . as_line_string :: < 3 > ( ) . value_as_geo ( i) )
453+ }
446454 } ,
447455 LargeLineString ( _, dimension) => match dimension {
448456 Dimension :: XY => {
449- Value :: from ( & chunk. as_large_line_string_2d ( ) . value_as_geo ( i) )
457+ Value :: from ( & chunk. as_ref ( ) . as_large_line_string :: < 2 > ( ) . value_as_geo ( i) )
450458 }
451459 Dimension :: XYZ => {
452- Value :: from ( & chunk. as_large_line_string_3d ( ) . value_as_geo ( i) )
460+ Value :: from ( & chunk. as_ref ( ) . as_large_line_string :: < 3 > ( ) . value_as_geo ( i) )
453461 }
454462 } ,
455463 Polygon ( _, dimension) => match dimension {
456- Dimension :: XY => Value :: from ( & chunk. as_polygon_2d ( ) . value_as_geo ( i) ) ,
457- Dimension :: XYZ => Value :: from ( & chunk. as_polygon_3d ( ) . value_as_geo ( i) ) ,
464+ Dimension :: XY => {
465+ Value :: from ( & chunk. as_ref ( ) . as_polygon :: < 2 > ( ) . value_as_geo ( i) )
466+ }
467+ Dimension :: XYZ => {
468+ Value :: from ( & chunk. as_ref ( ) . as_polygon :: < 3 > ( ) . value_as_geo ( i) )
469+ }
458470 } ,
459471 LargePolygon ( _, dimension) => match dimension {
460- Dimension :: XY => Value :: from ( & chunk. as_large_polygon_2d ( ) . value_as_geo ( i) ) ,
461- Dimension :: XYZ => Value :: from ( & chunk. as_large_polygon_3d ( ) . value_as_geo ( i) ) ,
472+ Dimension :: XY => {
473+ Value :: from ( & chunk. as_ref ( ) . as_large_polygon :: < 2 > ( ) . value_as_geo ( i) )
474+ }
475+ Dimension :: XYZ => {
476+ Value :: from ( & chunk. as_ref ( ) . as_large_polygon :: < 3 > ( ) . value_as_geo ( i) )
477+ }
462478 } ,
463479 MultiPoint ( _, dimension) => match dimension {
464- Dimension :: XY => Value :: from ( & chunk. as_multi_point_2d ( ) . value_as_geo ( i) ) ,
465- Dimension :: XYZ => Value :: from ( & chunk. as_multi_point_3d ( ) . value_as_geo ( i) ) ,
480+ Dimension :: XY => {
481+ Value :: from ( & chunk. as_ref ( ) . as_multi_point :: < 2 > ( ) . value_as_geo ( i) )
482+ }
483+ Dimension :: XYZ => {
484+ Value :: from ( & chunk. as_ref ( ) . as_multi_point :: < 3 > ( ) . value_as_geo ( i) )
485+ }
466486 } ,
467487 LargeMultiPoint ( _, dimension) => match dimension {
468488 Dimension :: XY => {
469- Value :: from ( & chunk. as_large_multi_point_2d ( ) . value_as_geo ( i) )
489+ Value :: from ( & chunk. as_ref ( ) . as_large_multi_point :: < 2 > ( ) . value_as_geo ( i) )
470490 }
471491 Dimension :: XYZ => {
472- Value :: from ( & chunk. as_large_multi_point_3d ( ) . value_as_geo ( i) )
492+ Value :: from ( & chunk. as_ref ( ) . as_large_multi_point :: < 3 > ( ) . value_as_geo ( i) )
473493 }
474494 } ,
475495 MultiLineString ( _, dimension) => match dimension {
476496 Dimension :: XY => {
477- Value :: from ( & chunk. as_multi_line_string_2d ( ) . value_as_geo ( i) )
497+ Value :: from ( & chunk. as_ref ( ) . as_multi_line_string :: < 2 > ( ) . value_as_geo ( i) )
478498 }
479499 Dimension :: XYZ => {
480- Value :: from ( & chunk. as_multi_line_string_3d ( ) . value_as_geo ( i) )
500+ Value :: from ( & chunk. as_ref ( ) . as_multi_line_string :: < 3 > ( ) . value_as_geo ( i) )
481501 }
482502 } ,
483503 LargeMultiLineString ( _, dimension) => match dimension {
504+ Dimension :: XY => Value :: from (
505+ & chunk
506+ . as_ref ( )
507+ . as_large_multi_line_string :: < 2 > ( )
508+ . value_as_geo ( i) ,
509+ ) ,
510+ Dimension :: XYZ => Value :: from (
511+ & chunk
512+ . as_ref ( )
513+ . as_large_multi_line_string :: < 3 > ( )
514+ . value_as_geo ( i) ,
515+ ) ,
516+ } ,
517+ MultiPolygon ( _, dimension) => match dimension {
484518 Dimension :: XY => {
485- Value :: from ( & chunk. as_large_multi_line_string_2d ( ) . value_as_geo ( i) )
519+ Value :: from ( & chunk. as_ref ( ) . as_multi_polygon :: < 2 > ( ) . value_as_geo ( i) )
486520 }
487521 Dimension :: XYZ => {
488- Value :: from ( & chunk. as_large_multi_line_string_3d ( ) . value_as_geo ( i) )
522+ Value :: from ( & chunk. as_ref ( ) . as_multi_polygon :: < 3 > ( ) . value_as_geo ( i) )
489523 }
490524 } ,
491- MultiPolygon ( _, dimension) => match dimension {
492- Dimension :: XY => Value :: from ( & chunk. as_multi_polygon_2d ( ) . value_as_geo ( i) ) ,
493- Dimension :: XYZ => Value :: from ( & chunk. as_multi_polygon_3d ( ) . value_as_geo ( i) ) ,
494- } ,
495525 LargeMultiPolygon ( _, dimension) => match dimension {
526+ Dimension :: XY => Value :: from (
527+ & chunk. as_ref ( ) . as_large_multi_polygon :: < 2 > ( ) . value_as_geo ( i) ,
528+ ) ,
529+ Dimension :: XYZ => Value :: from (
530+ & chunk. as_ref ( ) . as_large_multi_polygon :: < 3 > ( ) . value_as_geo ( i) ,
531+ ) ,
532+ } ,
533+ Mixed ( _, dimension) => match dimension {
496534 Dimension :: XY => {
497- Value :: from ( & chunk. as_large_multi_polygon_2d ( ) . value_as_geo ( i) )
535+ Value :: from ( & chunk. as_ref ( ) . as_mixed :: < 2 > ( ) . value_as_geo ( i) )
498536 }
499537 Dimension :: XYZ => {
500- Value :: from ( & chunk. as_large_multi_polygon_3d ( ) . value_as_geo ( i) )
538+ Value :: from ( & chunk. as_ref ( ) . as_mixed :: < 3 > ( ) . value_as_geo ( i) )
501539 }
502540 } ,
503- Mixed ( _, dimension) => match dimension {
504- Dimension :: XY => Value :: from ( & chunk. as_mixed_2d ( ) . value_as_geo ( i) ) ,
505- Dimension :: XYZ => Value :: from ( & chunk. as_mixed_3d ( ) . value_as_geo ( i) ) ,
506- } ,
507541 LargeMixed ( _, dimension) => match dimension {
508- Dimension :: XY => Value :: from ( & chunk. as_large_mixed_2d ( ) . value_as_geo ( i) ) ,
509- Dimension :: XYZ => Value :: from ( & chunk. as_large_mixed_3d ( ) . value_as_geo ( i) ) ,
510- } ,
511- GeometryCollection ( _, dimension) => match dimension {
512542 Dimension :: XY => {
513- Value :: from ( & chunk. as_geometry_collection_2d ( ) . value_as_geo ( i) )
543+ Value :: from ( & chunk. as_ref ( ) . as_large_mixed :: < 2 > ( ) . value_as_geo ( i) )
514544 }
515545 Dimension :: XYZ => {
516- Value :: from ( & chunk. as_geometry_collection_3d ( ) . value_as_geo ( i) )
546+ Value :: from ( & chunk. as_ref ( ) . as_large_mixed :: < 3 > ( ) . value_as_geo ( i) )
517547 }
518548 } ,
549+ GeometryCollection ( _, dimension) => match dimension {
550+ Dimension :: XY => Value :: from (
551+ & chunk. as_ref ( ) . as_geometry_collection :: < 2 > ( ) . value_as_geo ( i) ,
552+ ) ,
553+ Dimension :: XYZ => Value :: from (
554+ & chunk. as_ref ( ) . as_geometry_collection :: < 3 > ( ) . value_as_geo ( i) ,
555+ ) ,
556+ } ,
519557 LargeGeometryCollection ( _, dimension) => match dimension {
558+ Dimension :: XY => Value :: from (
559+ & chunk
560+ . as_ref ( )
561+ . as_large_geometry_collection :: < 2 > ( )
562+ . value_as_geo ( i) ,
563+ ) ,
564+ Dimension :: XYZ => Value :: from (
565+ & chunk
566+ . as_ref ( )
567+ . as_large_geometry_collection :: < 3 > ( )
568+ . value_as_geo ( i) ,
569+ ) ,
570+ } ,
571+ WKB => Value :: from ( & chunk. as_ref ( ) . as_wkb ( ) . value_as_geo ( i) ) ,
572+ LargeWKB => Value :: from ( & chunk. as_ref ( ) . as_large_wkb ( ) . value_as_geo ( i) ) ,
573+ Rect ( dimension) => match dimension {
520574 Dimension :: XY => {
521- Value :: from ( & chunk. as_large_geometry_collection_2d ( ) . value_as_geo ( i) )
575+ Value :: from ( & chunk. as_ref ( ) . as_rect :: < 2 > ( ) . value_as_geo ( i) )
522576 }
523577 Dimension :: XYZ => {
524- Value :: from ( & chunk. as_large_geometry_collection_3d ( ) . value_as_geo ( i) )
578+ Value :: from ( & chunk. as_ref ( ) . as_rect :: < 3 > ( ) . value_as_geo ( i) )
525579 }
526580 } ,
527- WKB => Value :: from ( & chunk. as_wkb ( ) . value_as_geo ( i) ) ,
528- LargeWKB => Value :: from ( & chunk. as_large_wkb ( ) . value_as_geo ( i) ) ,
529- Rect ( dimension) => match dimension {
530- Dimension :: XY => Value :: from ( & chunk. as_rect_2d ( ) . value_as_geo ( i) ) ,
531- Dimension :: XYZ => Value :: from ( & chunk. as_rect_3d ( ) . value_as_geo ( i) ) ,
532- } ,
533581 } ;
534582 let mut row = json_rows
535583 . next ( )
0 commit comments