diff --git a/crates/typst-library/src/foundations/float.rs b/crates/typst-library/src/foundations/float.rs index fcc46b034..911f6cdf4 100644 --- a/crates/typst-library/src/foundations/float.rs +++ b/crates/typst-library/src/foundations/float.rs @@ -110,7 +110,8 @@ impl f64 { f64::signum(self) } - /// Converts bytes to a float. + /// Interprets bytes as a float in [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754) + /// format. /// /// ```example /// #float.from-bytes(bytes((0, 0, 0, 0, 0, 0, 240, 63))) \ @@ -120,8 +121,10 @@ impl f64 { pub fn from_bytes( /// The bytes that should be converted to a float. /// - /// Must be of length exactly 8 so that the result fits into a 64-bit - /// float. + /// Must have a length of either 4 or 8. The bytes are then + /// interpreted in the binary32 (single-precision) or + /// binary64 (double-precision) format depending on the + /// length of the bytes. bytes: Bytes, /// The endianness of the conversion. #[named] @@ -145,7 +148,8 @@ impl f64 { bail!("bytes must have a length of 4 or 8"); } - /// Converts a float to bytes. + /// Converts a float to bytes in [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754) + /// format. /// /// ```example /// #array(1.0.to-bytes(endian: "big")) \ @@ -158,6 +162,12 @@ impl f64 { #[named] #[default(Endianness::Little)] endian: Endianness, + /// The size of the resulting bytes. + /// + /// This must be either 4 or 8. The call will return the + /// representation of this float in either the binary32 + /// (single-precision) or binary64 (double-precision) format + /// depending on the provided size. #[named] #[default(8)] size: u32,