File tree Expand file tree Collapse file tree 1 file changed +16
-0
lines changed
crates/utils/re_arrow_util/src Expand file tree Collapse file tree 1 file changed +16
-0
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,10 @@ pub trait ArrowArrayDowncastRef<'a>: 'a {
2020 /// Similar to `downcast_array_ref`, but returns an error in case the downcast
2121 /// returns `None`.
2222 fn try_downcast_array_ref < T : Array + ' static > ( self ) -> Result < & ' a T , ArrowError > ;
23+
24+ /// Similar to `downcast_array_ref`, but returns an error in case the downcast
25+ /// returns `None`.
26+ fn try_downcast_array < T : Array + Clone + ' static > ( self ) -> Result < T , ArrowError > ;
2327}
2428
2529impl < ' a > ArrowArrayDowncastRef < ' a > for & ' a dyn Array {
@@ -36,6 +40,12 @@ impl<'a> ArrowArrayDowncastRef<'a> for &'a dyn Array {
3640 ) )
3741 } )
3842 }
43+
44+ /// Similar to `downcast_array_ref`, but returns an error in case the downcast
45+ /// returns `None`.
46+ fn try_downcast_array < T : Array + Clone + ' static > ( self ) -> Result < T , ArrowError > {
47+ Ok ( self . try_downcast_array_ref :: < T > ( ) ?. clone ( ) )
48+ }
3949}
4050
4151impl < ' a > ArrowArrayDowncastRef < ' a > for & ' a ArrayRef {
@@ -52,6 +62,12 @@ impl<'a> ArrowArrayDowncastRef<'a> for &'a ArrayRef {
5262 ) )
5363 } )
5464 }
65+
66+ /// Similar to `downcast_array_ref`, but returns an error in case the downcast
67+ /// returns `None`.
68+ fn try_downcast_array < T : Array + Clone + ' static > ( self ) -> Result < T , ArrowError > {
69+ Ok ( self . try_downcast_array_ref :: < T > ( ) ?. clone ( ) )
70+ }
5571}
5672
5773// ---------------------------------------------------------------------------------
You can’t perform that action at this time.
0 commit comments