@@ -142,7 +142,7 @@ mod shim {
142142 }
143143
144144 /// Wrapper for microtex_render_to_svg_with_metrics.
145- ///
145+ ///
146146 /// Calls the C++ FFI function that returns a JSON buffer containing SVG + metrics.
147147 /// On Windows, converts between 32-bit and 64-bit unsigned long types.
148148 #[ cfg( all( not( test) , target_os = "windows" ) ) ]
@@ -843,31 +843,37 @@ impl MicroTex {
843843 let metrics_obj = json_value
844844 . get ( "metrics" )
845845 . and_then ( |v| v. as_object ( ) )
846- . ok_or_else ( || RenderError :: ParseJsonFailed ( "missing 'metrics' field" . to_string ( ) ) ) ?;
846+ . ok_or_else ( || {
847+ RenderError :: ParseJsonFailed ( "missing 'metrics' field" . to_string ( ) )
848+ } ) ?;
847849
848850 let width = metrics_obj
849851 . get ( "width" )
850852 . and_then ( |v| v. as_i64 ( ) )
851- . ok_or_else ( || RenderError :: ParseJsonFailed ( "missing or invalid 'width'" . to_string ( ) ) ) ?
852- as i32 ;
853+ . ok_or_else ( || {
854+ RenderError :: ParseJsonFailed ( "missing or invalid 'width'" . to_string ( ) )
855+ } ) ? as i32 ;
853856
854857 let height = metrics_obj
855858 . get ( "height" )
856859 . and_then ( |v| v. as_i64 ( ) )
857- . ok_or_else ( || RenderError :: ParseJsonFailed ( "missing or invalid 'height'" . to_string ( ) ) ) ?
858- as i32 ;
860+ . ok_or_else ( || {
861+ RenderError :: ParseJsonFailed ( "missing or invalid 'height'" . to_string ( ) )
862+ } ) ? as i32 ;
859863
860864 let depth = metrics_obj
861865 . get ( "depth" )
862866 . and_then ( |v| v. as_i64 ( ) )
863- . ok_or_else ( || RenderError :: ParseJsonFailed ( "missing or invalid 'depth'" . to_string ( ) ) ) ?
864- as i32 ;
867+ . ok_or_else ( || {
868+ RenderError :: ParseJsonFailed ( "missing or invalid 'depth'" . to_string ( ) )
869+ } ) ? as i32 ;
865870
866871 let ascent = metrics_obj
867872 . get ( "ascent" )
868873 . and_then ( |v| v. as_i64 ( ) )
869- . ok_or_else ( || RenderError :: ParseJsonFailed ( "missing or invalid 'ascent'" . to_string ( ) ) ) ?
870- as i32 ;
874+ . ok_or_else ( || {
875+ RenderError :: ParseJsonFailed ( "missing or invalid 'ascent'" . to_string ( ) )
876+ } ) ? as i32 ;
871877
872878 let metrics = RenderMetrics :: new ( width, height, depth, ascent) ;
873879
@@ -1049,7 +1055,7 @@ mod tests {
10491055 crate :: shim:: set_init_succeed ( true ) ;
10501056 crate :: shim:: set_parse_succeed ( true ) ;
10511057 crate :: shim:: set_return_empty ( false ) ;
1052-
1058+
10531059 // Create a valid JSON response with SVG and metrics
10541060 let json_response = br#"{
10551061 "svg": "<svg>test formula</svg>",
@@ -1060,12 +1066,12 @@ mod tests {
10601066 "ascent": 40
10611067 }
10621068 }"# ;
1063-
1069+
10641070 crate :: shim:: set_buffer ( json_response) ;
1065-
1071+
10661072 let m = MicroTex :: new ( ) . expect ( "init ok" ) ;
10671073 let r = m. render_to_svg_with_metrics ( "x^2" , & RenderConfig :: default ( ) ) ;
1068-
1074+
10691075 assert ! ( r. is_ok( ) ) ;
10701076 let result = r. unwrap ( ) ;
10711077 assert ! ( result. svg. contains( "<svg" ) ) ;
@@ -1080,10 +1086,10 @@ mod tests {
10801086 let _g = crate :: shim:: lock_test ( ) ;
10811087 crate :: shim:: set_init_succeed ( true ) ;
10821088 crate :: shim:: set_parse_succeed ( false ) ;
1083-
1089+
10841090 let m = MicroTex :: new ( ) . expect ( "init should succeed" ) ;
10851091 let r = m. render_to_svg_with_metrics ( "x" , & RenderConfig :: default ( ) ) ;
1086-
1092+
10871093 assert ! ( matches!( r, Err ( RenderError :: ParseRenderFailed ) ) ) ;
10881094 crate :: shim:: set_parse_succeed ( true ) ;
10891095 }
@@ -1094,10 +1100,10 @@ mod tests {
10941100 crate :: shim:: set_init_succeed ( true ) ;
10951101 crate :: shim:: set_parse_succeed ( true ) ;
10961102 crate :: shim:: set_return_empty ( true ) ;
1097-
1103+
10981104 let m = MicroTex :: new ( ) . expect ( "init should succeed" ) ;
10991105 let r = m. render_to_svg_with_metrics ( "x" , & RenderConfig :: default ( ) ) ;
1100-
1106+
11011107 assert ! ( matches!( r, Err ( RenderError :: EmptyOutput ) ) ) ;
11021108 crate :: shim:: set_return_empty ( false ) ;
11031109 }
@@ -1109,10 +1115,10 @@ mod tests {
11091115 crate :: shim:: set_parse_succeed ( true ) ;
11101116 crate :: shim:: set_return_empty ( false ) ;
11111117 crate :: shim:: set_buffer ( b"not valid json" ) ;
1112-
1118+
11131119 let m = MicroTex :: new ( ) . expect ( "init ok" ) ;
11141120 let r = m. render_to_svg_with_metrics ( "x" , & RenderConfig :: default ( ) ) ;
1115-
1121+
11161122 assert ! ( matches!( r, Err ( RenderError :: ParseJsonFailed ( _) ) ) ) ;
11171123 }
11181124
@@ -1122,7 +1128,7 @@ mod tests {
11221128 crate :: shim:: set_init_succeed ( true ) ;
11231129 crate :: shim:: set_parse_succeed ( true ) ;
11241130 crate :: shim:: set_return_empty ( false ) ;
1125-
1131+
11261132 // JSON missing "svg" field
11271133 let json_response = br#"{
11281134 "metrics": {
@@ -1132,12 +1138,12 @@ mod tests {
11321138 "ascent": 40
11331139 }
11341140 }"# ;
1135-
1141+
11361142 crate :: shim:: set_buffer ( json_response) ;
1137-
1143+
11381144 let m = MicroTex :: new ( ) . expect ( "init ok" ) ;
11391145 let r = m. render_to_svg_with_metrics ( "x" , & RenderConfig :: default ( ) ) ;
1140-
1146+
11411147 assert ! ( matches!( r, Err ( RenderError :: ParseJsonFailed ( _) ) ) ) ;
11421148 }
11431149
@@ -1147,17 +1153,17 @@ mod tests {
11471153 crate :: shim:: set_init_succeed ( true ) ;
11481154 crate :: shim:: set_parse_succeed ( true ) ;
11491155 crate :: shim:: set_return_empty ( false ) ;
1150-
1156+
11511157 // JSON missing "metrics" field
11521158 let json_response = br#"{
11531159 "svg": "<svg>test</svg>"
11541160 }"# ;
1155-
1161+
11561162 crate :: shim:: set_buffer ( json_response) ;
1157-
1163+
11581164 let m = MicroTex :: new ( ) . expect ( "init ok" ) ;
11591165 let r = m. render_to_svg_with_metrics ( "x" , & RenderConfig :: default ( ) ) ;
1160-
1166+
11611167 assert ! ( matches!( r, Err ( RenderError :: ParseJsonFailed ( _) ) ) ) ;
11621168 }
11631169
@@ -1167,7 +1173,7 @@ mod tests {
11671173 crate :: shim:: set_init_succeed ( true ) ;
11681174 crate :: shim:: set_parse_succeed ( true ) ;
11691175 crate :: shim:: set_return_empty ( false ) ;
1170-
1176+
11711177 // JSON with metrics missing "width" field
11721178 let json_response = br#"{
11731179 "svg": "<svg>test</svg>",
@@ -1177,12 +1183,12 @@ mod tests {
11771183 "ascent": 40
11781184 }
11791185 }"# ;
1180-
1186+
11811187 crate :: shim:: set_buffer ( json_response) ;
1182-
1188+
11831189 let m = MicroTex :: new ( ) . expect ( "init ok" ) ;
11841190 let r = m. render_to_svg_with_metrics ( "x" , & RenderConfig :: default ( ) ) ;
1185-
1191+
11861192 assert ! ( matches!( r, Err ( RenderError :: ParseJsonFailed ( _) ) ) ) ;
11871193 }
11881194
@@ -1208,7 +1214,7 @@ mod tests {
12081214 fn test_render_result_creation ( ) {
12091215 let metrics = RenderMetrics :: new ( 100 , 50 , 10 , 40 ) ;
12101216 let result = RenderResult :: new ( "<svg>test</svg>" . to_string ( ) , metrics) ;
1211-
1217+
12121218 assert_eq ! ( result. svg, "<svg>test</svg>" ) ;
12131219 assert_eq ! ( result. metrics. width, 100 ) ;
12141220 assert_eq ! ( result. metrics. height, 50 ) ;
0 commit comments