@@ -55,94 +55,96 @@ macro_rules! vector_extern {
55
55
$extern_push: ident,
56
56
$extern_insert: ident $( , ) ?
57
57
) => {
58
+ extern "C" {
59
+ fn $extern_new( ) -> $vector_extern_mut;
60
+ fn $extern_delete( instance: $vector_extern_mut) ;
61
+ fn $extern_len( instance: $vector_extern_const) -> $crate:: platform_types:: size_t;
62
+ fn $extern_is_empty( instance: $vector_extern_const) -> bool ;
63
+ fn $extern_capacity( instance: $vector_extern_const) -> $crate:: platform_types:: size_t;
64
+ fn $extern_shrink_to_fit( instance: $vector_extern_mut) ;
65
+ fn $extern_reserve( instance: $vector_extern_mut, additional: $crate:: platform_types:: size_t) ;
66
+ fn $extern_remove( instance: $vector_extern_mut, index: $crate:: platform_types:: size_t) ;
67
+ fn $extern_swap( instance: $vector_extern_mut, index1: $crate:: platform_types:: size_t, index2: $crate:: platform_types:: size_t) ;
68
+ fn $extern_clear( instance: $vector_extern_mut) ;
69
+ fn $extern_get<' a>( instance: $vector_extern_const, index: $crate:: platform_types:: size_t) -> $crate:: sys:: Result <<$type as $crate:: traits:: OpenCVType <' a>>:: ExternReceive >;
70
+ fn $extern_push<' a>( instance: $vector_extern_mut, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) ;
71
+ fn $extern_insert<' a>( instance: $vector_extern_mut, index: $crate:: platform_types:: size_t, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) ;
72
+ fn $extern_set<' a>( instance: $vector_extern_mut, index: $crate:: platform_types:: size_t, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) ;
73
+ }
74
+
58
75
impl $crate:: manual:: core:: VectorExtern <$type> for $crate:: manual:: core:: Vector <$type> {
59
76
#[ inline( always) ]
60
77
unsafe fn extern_new( ) -> $vector_extern_mut {
61
- extern "C" { fn $extern_new( ) -> $vector_extern_mut; }
62
78
$extern_new( )
63
79
}
64
80
65
81
#[ inline( always) ]
66
82
unsafe fn extern_delete( & mut self ) {
67
- extern "C" { fn $extern_delete( instance: $vector_extern_mut) ; }
68
83
$extern_delete( self . as_raw_mut( ) )
69
84
}
70
85
71
86
#[ inline( always) ]
72
87
unsafe fn extern_len( & self ) -> $crate:: platform_types:: size_t {
73
- extern "C" { fn $extern_len( instance: $vector_extern_const) -> $crate:: platform_types:: size_t; }
74
88
$extern_len( self . as_raw( ) )
75
89
}
76
90
77
91
#[ inline( always) ]
78
92
unsafe fn extern_is_empty( & self ) -> bool {
79
- extern "C" { fn $extern_is_empty( instance: $vector_extern_const) -> bool ; }
80
93
$extern_is_empty( self . as_raw( ) )
81
94
}
82
95
83
96
#[ inline( always) ]
84
97
unsafe fn extern_capacity( & self ) -> $crate:: platform_types:: size_t {
85
- extern "C" { fn $extern_capacity( instance: $vector_extern_const) -> $crate:: platform_types:: size_t; }
86
98
$extern_capacity( self . as_raw( ) )
87
99
}
88
100
89
101
#[ inline( always) ]
90
102
unsafe fn extern_shrink_to_fit( & mut self ) {
91
- extern "C" { fn $extern_shrink_to_fit( instance: $vector_extern_mut) ; }
92
103
$extern_shrink_to_fit( self . as_raw_mut( ) )
93
104
}
94
105
95
106
#[ inline( always) ]
96
107
unsafe fn extern_reserve( & mut self , additional: $crate:: platform_types:: size_t) {
97
- extern "C" { fn $extern_reserve( instance: $vector_extern_mut, additional: $crate:: platform_types:: size_t) ; }
98
108
$extern_reserve( self . as_raw_mut( ) , additional)
99
109
}
100
110
101
111
#[ inline( always) ]
102
112
unsafe fn extern_remove( & mut self , index: $crate:: platform_types:: size_t) {
103
- extern "C" { fn $extern_remove( instance: $vector_extern_mut, index: $crate:: platform_types:: size_t) ; }
104
113
$extern_remove( self . as_raw_mut( ) , index)
105
114
}
106
115
107
116
#[ inline( always) ]
108
117
unsafe fn extern_swap( & mut self , index1: $crate:: platform_types:: size_t, index2: $crate:: platform_types:: size_t) {
109
- extern "C" { fn $extern_swap( instance: $vector_extern_mut, index1: $crate:: platform_types:: size_t, index2: $crate:: platform_types:: size_t) ; }
110
118
$extern_swap( self . as_raw_mut( ) , index1, index2)
111
119
}
112
120
113
121
#[ inline( always) ]
114
122
unsafe fn extern_clear( & mut self ) {
115
- extern "C" { fn $extern_clear( instance: $vector_extern_mut) ; }
116
123
$extern_clear( self . as_raw_mut( ) )
117
124
}
118
125
119
126
#[ inline( always) ]
120
127
unsafe fn extern_get( & self , index: $crate:: platform_types:: size_t) -> $crate:: sys:: Result <<$type as $crate:: traits:: OpenCVType <' _>>:: ExternReceive > {
121
- extern "C" { fn $extern_get<' a>( instance: $vector_extern_const, index: $crate:: platform_types:: size_t) -> $crate:: sys:: Result <<$type as $crate:: traits:: OpenCVType <' a>>:: ExternReceive >; }
122
128
$extern_get( self . as_raw( ) , index)
123
129
}
124
130
125
131
#[ inline( always) ]
126
132
unsafe fn extern_push<' a>( & mut self , val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) {
127
- extern "C" { fn $extern_push<' a>( instance: $vector_extern_mut, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) ; }
128
133
$extern_push( self . as_raw_mut( ) , val)
129
134
}
130
135
131
136
#[ inline( always) ]
132
137
unsafe fn extern_push_owned( & mut self , val: <<$type as $crate:: traits:: OpenCVType >:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) {
133
- extern "C" { fn $extern_push<' a>( instance: $vector_extern_mut, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) ; }
134
138
$extern_push( self . as_raw_mut( ) , val)
135
139
}
136
140
137
141
#[ inline( always) ]
138
142
unsafe fn extern_insert<' a>( & mut self , index: $crate:: platform_types:: size_t, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) {
139
- extern "C" { fn $extern_insert<' a>( instance: $vector_extern_mut, index: $crate:: platform_types:: size_t, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) ; }
140
143
$extern_insert( self . as_raw_mut( ) , index, val)
141
144
}
142
145
143
146
#[ inline( always) ]
144
147
unsafe fn extern_set<' a>( & mut self , index: $crate:: platform_types:: size_t, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) {
145
- extern "C" { fn $extern_set<' a>( instance: $vector_extern_mut, index: $crate:: platform_types:: size_t, val: <<<$type as $crate:: traits:: OpenCVType <' a>>:: Arg as $crate:: traits:: OpenCVTypeArg <' a>>:: ExternContainer as $crate:: traits:: OpenCVTypeExternContainer >:: ExternSend ) ; }
146
148
$extern_set( self . as_raw_mut( ) , index, val)
147
149
}
148
150
}
0 commit comments