@@ -376,31 +376,18 @@ pub trait Convertable {
376
376
fn convert ( & self ) -> Array < Self :: OutType > ;
377
377
}
378
378
379
- macro_rules! convertable_type_def {
380
- ( $rust_type: ty) => {
381
- impl Convertable for $rust_type {
382
- type OutType = $rust_type;
379
+ impl < T > Convertable for T
380
+ where
381
+ T : Clone + HasAfEnum + ConstGenerator < OutType = T > ,
382
+ <T as ConstGenerator >:: OutType : HasAfEnum ,
383
+ {
384
+ type OutType = T ;
383
385
384
- fn convert( & self ) -> Array <Self :: OutType > {
385
- constant( * self , Dim4 :: new( & [ 1 , 1 , 1 , 1 ] ) )
386
- }
387
- }
388
- } ;
386
+ fn convert ( & self ) -> Array < Self :: OutType > {
387
+ constant ( self . clone ( ) , Dim4 :: new ( & [ 1 , 1 , 1 , 1 ] ) )
388
+ }
389
389
}
390
390
391
- convertable_type_def ! ( Complex <f64 >) ;
392
- convertable_type_def ! ( Complex <f32 >) ;
393
- convertable_type_def ! ( u64 ) ;
394
- convertable_type_def ! ( i64 ) ;
395
- convertable_type_def ! ( f64 ) ;
396
- convertable_type_def ! ( f32 ) ;
397
- convertable_type_def ! ( i32 ) ;
398
- convertable_type_def ! ( u32 ) ;
399
- convertable_type_def ! ( i16 ) ;
400
- convertable_type_def ! ( u16 ) ;
401
- convertable_type_def ! ( u8 ) ;
402
- convertable_type_def ! ( bool ) ;
403
-
404
391
impl < T : HasAfEnum > Convertable for Array < T > {
405
392
type OutType = T ;
406
393
0 commit comments