@@ -219,9 +219,9 @@ impl Module {
219
219
Ok ( ( ) )
220
220
}
221
221
222
- /// Deserializes a serialized Module binary into a `Module`.
222
+ /// Deserializes a serialized module binary into a `Module`.
223
223
///
224
- /// Note: You should usually prefer the safe [`Module::deserialize_checked `].
224
+ /// Note: You should usually prefer the safer [`Module::deserialize `].
225
225
///
226
226
/// # Important
227
227
///
@@ -250,11 +250,13 @@ impl Module {
250
250
/// # Ok(())
251
251
/// # }
252
252
/// ```
253
- pub unsafe fn deserialize (
253
+ pub unsafe fn deserialize_unchecked (
254
254
engine : & impl AsEngineRef ,
255
255
bytes : impl IntoBytes ,
256
256
) -> Result < Self , DeserializeError > {
257
- Ok ( Self ( module_imp:: Module :: deserialize ( engine, bytes) ?) )
257
+ Ok ( Self ( module_imp:: Module :: deserialize_unchecked (
258
+ engine, bytes,
259
+ ) ?) )
258
260
}
259
261
260
262
/// Deserializes a serialized Module binary into a `Module`.
@@ -272,17 +274,21 @@ impl Module {
272
274
/// # use wasmer::*;
273
275
/// # fn main() -> anyhow::Result<()> {
274
276
/// # let mut store = Store::default();
275
- /// let module = Module::deserialize_checked (&store, serialized_data)?;
277
+ /// let module = Module::deserialize (&store, serialized_data)?;
276
278
/// # Ok(())
277
279
/// # }
278
280
/// ```
279
- pub fn deserialize_checked (
281
+ ///
282
+ /// # Safety
283
+ /// This function is inherently **unsafe**, because it loads executable code
284
+ /// into memory.
285
+ /// The loaded bytes must be trusted to contain a valid artifact previously
286
+ /// built with [`Self::serialize`].
287
+ pub unsafe fn deserialize (
280
288
engine : & impl AsEngineRef ,
281
289
bytes : impl IntoBytes ,
282
290
) -> Result < Self , DeserializeError > {
283
- Ok ( Self ( module_imp:: Module :: deserialize_checked (
284
- engine, bytes,
285
- ) ?) )
291
+ Ok ( Self ( module_imp:: Module :: deserialize ( engine, bytes) ?) )
286
292
}
287
293
288
294
/// Deserializes a a serialized Module located in a `Path` into a `Module`.
@@ -298,37 +304,43 @@ impl Module {
298
304
/// # Ok(())
299
305
/// # }
300
306
/// ```
301
- pub fn deserialize_from_file_checked (
307
+ ///
308
+ /// # Safety
309
+ ///
310
+ /// See [`Self::deserialize`].
311
+ pub unsafe fn deserialize_from_file (
302
312
engine : & impl AsEngineRef ,
303
313
path : impl AsRef < Path > ,
304
314
) -> Result < Self , DeserializeError > {
305
- Ok ( Self ( module_imp:: Module :: deserialize_from_file_checked (
315
+ Ok ( Self ( module_imp:: Module :: deserialize_from_file (
306
316
engine, path,
307
317
) ?) )
308
318
}
309
319
310
320
/// Deserializes a a serialized Module located in a `Path` into a `Module`.
311
321
/// > Note: the module has to be serialized before with the `serialize` method.
312
322
///
323
+ /// You should usually prefer the safer [`Module::deserialize_from_file`].
324
+ ///
313
325
/// # Safety
314
326
///
315
- /// Please check [`Module::deserialize `].
327
+ /// Please check [`Module::deserialize_unchecked `].
316
328
///
317
329
/// # Usage
318
330
///
319
331
/// ```ignore
320
332
/// # use wasmer::*;
321
333
/// # let mut store = Store::default();
322
334
/// # fn main() -> anyhow::Result<()> {
323
- /// let module = Module::deserialize_from_file (&store, path)?;
335
+ /// let module = Module::deserialize_from_file_unchecked (&store, path)?;
324
336
/// # Ok(())
325
337
/// # }
326
338
/// ```
327
- pub unsafe fn deserialize_from_file (
339
+ pub unsafe fn deserialize_from_file_unchecked (
328
340
engine : & impl AsEngineRef ,
329
341
path : impl AsRef < Path > ,
330
342
) -> Result < Self , DeserializeError > {
331
- Ok ( Self ( module_imp:: Module :: deserialize_from_file (
343
+ Ok ( Self ( module_imp:: Module :: deserialize_from_file_unchecked (
332
344
engine, path,
333
345
) ?) )
334
346
}
0 commit comments