11use  crate :: CFormatting ; 
2- use  heck:: { CamelCase ,  SnakeCase } ; 
2+ use  heck:: { ShoutySnakeCase ,  SnakeCase } ; 
33use  oo_bindgen:: doc:: * ; 
44use  oo_bindgen:: formatting:: * ; 
55use  oo_bindgen:: Library ; 
@@ -54,7 +54,7 @@ fn reference_print(
5454        } 
5555        DocReference :: Class ( class_name)  => { 
5656            let  handle = lib. find_class_declaration ( class_name) . unwrap ( ) ; 
57-             f. write ( & format ! ( "@ref {}" ,  handle. to_c_type( ) ) ) ?; 
57+             f. write ( & format ! ( "@ref {}" ,  handle. to_c_type( & lib . c_ffi_prefix ) ) ) ?; 
5858        } 
5959        DocReference :: ClassMethod ( class_name,  method_name)  => { 
6060            let  func_name = & lib
@@ -63,25 +63,30 @@ fn reference_print(
6363                . find_method ( method_name) 
6464                . unwrap ( ) 
6565                . name ; 
66-             f. write ( & format ! ( "@ref {}"  ,  func_name) ) ?; 
66+             f. write ( & format ! ( "@ref {}_{}"  ,  lib . c_ffi_prefix ,  func_name) ) ?; 
6767        } 
6868        DocReference :: ClassConstructor ( class_name)  => { 
6969            let  handle = lib. find_class ( class_name) . unwrap ( ) ; 
7070            f. write ( & format ! ( 
71-                 "@ref {}" , 
71+                 "@ref {}_{}" , 
72+                 lib. c_ffi_prefix, 
7273                handle. constructor. as_ref( ) . unwrap( ) . name
7374            ) ) ?; 
7475        } 
7576        DocReference :: ClassDestructor ( class_name)  => { 
7677            let  handle = lib. find_class ( class_name) . unwrap ( ) ; 
7778            f. write ( & format ! ( 
78-                 "@ref {}" , 
79+                 "@ref {}_{}" , 
80+                 lib. c_ffi_prefix, 
7981                handle. destructor. as_ref( ) . unwrap( ) . name
8082            ) ) ?; 
8183        } 
8284        DocReference :: Struct ( struct_name)  => { 
8385            let  struct_name = lib. find_struct ( struct_name) . unwrap ( ) . declaration ( ) ; 
84-             f. write ( & format ! ( "@ref {}" ,  struct_name. to_c_type( ) ) ) ?; 
86+             f. write ( & format ! ( 
87+                 "@ref {}" , 
88+                 struct_name. to_c_type( & lib. c_ffi_prefix) 
89+             ) ) ?; 
8590        } 
8691        DocReference :: StructMethod ( struct_name,  method_name)  => { 
8792            let  func_name = & lib
@@ -90,37 +95,38 @@ fn reference_print(
9095                . find_method ( method_name) 
9196                . unwrap ( ) 
9297                . name ; 
93-             f. write ( & format ! ( "@ref {}"  ,  func_name) ) ?; 
98+             f. write ( & format ! ( "@ref {}_{}"  ,  lib . c_ffi_prefix ,  func_name) ) ?; 
9499        } 
95100        DocReference :: StructElement ( struct_name,  element_name)  => { 
96101            let  handle = lib. find_struct ( struct_name) . unwrap ( ) ; 
97102            f. write ( & format ! ( 
98103                "@ref {}.{}" , 
99-                 handle. definition( ) . to_c_type( ) , 
104+                 handle. definition( ) . to_c_type( & lib . c_ffi_prefix ) , 
100105                element_name. to_snake_case( ) 
101106            ) ) ?; 
102107        } 
103108        DocReference :: Enum ( enum_name)  => { 
104109            let  enum_name = lib. find_enum ( enum_name) . unwrap ( ) ; 
105-             f. write ( & format ! ( "@ref {}" ,  enum_name. to_c_type( ) ) ) ?; 
110+             f. write ( & format ! ( "@ref {}" ,  enum_name. to_c_type( & lib . c_ffi_prefix ) ) ) ?; 
106111        } 
107112        DocReference :: EnumVariant ( enum_name,  variant_name)  => { 
108113            let  handle = lib. find_enum ( enum_name) . unwrap ( ) ; 
109114            f. write ( & format ! ( 
110-                 "@ref {}_{}" , 
111-                 handle. name. to_camel_case( ) , 
112-                 variant_name. to_camel_case( ) 
115+                 "@ref {}_{}_{}" , 
116+                 lib. c_ffi_prefix. to_shouty_snake_case( ) , 
117+                 handle. name. to_shouty_snake_case( ) , 
118+                 variant_name. to_shouty_snake_case( ) 
113119            ) ) ?; 
114120        } 
115121        DocReference :: Interface ( interface_name)  => { 
116122            let  handle = lib. find_interface ( interface_name) . unwrap ( ) ; 
117-             f. write ( & format ! ( "@ref {}" ,  handle. to_c_type( ) ) ) ?; 
123+             f. write ( & format ! ( "@ref {}" ,  handle. to_c_type( & lib . c_ffi_prefix ) ) ) ?; 
118124        } 
119125        DocReference :: InterfaceMethod ( interface_name,  callback_name)  => { 
120126            let  handle = & lib. find_interface ( interface_name) . unwrap ( ) ; 
121127            f. write ( & format ! ( 
122128                "@ref {}.{}" , 
123-                 handle. to_c_type( ) , 
129+                 handle. to_c_type( & lib . c_ffi_prefix ) , 
124130                callback_name. to_snake_case( ) 
125131            ) ) ?; 
126132        } 
0 commit comments