> On 22 Aug 2025, at 09:14, Andreas Hindborg <a.hindborg@kernel.org> wrote:
>
> rnull is going to make use of `str::Formatter` and `str::RawFormatter`, so
> expose them with public visibility.
>
> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
> Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
> ---
> rust/kernel/str.rs | 9 ++++-----
> 1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/rust/kernel/str.rs b/rust/kernel/str.rs
> index 76632da357a6..46cdc85dad63 100644
> --- a/rust/kernel/str.rs
> +++ b/rust/kernel/str.rs
> @@ -736,7 +736,7 @@ fn test_bstr_debug() -> Result {
> ///
> /// The memory region between `pos` (inclusive) and `end` (exclusive) is valid for writes if `pos`
> /// is less than `end`.
> -pub(crate) struct RawFormatter {
> +pub struct RawFormatter {
> // Use `usize` to use `saturating_*` functions.
> beg: usize,
> pos: usize,
> @@ -794,7 +794,7 @@ pub(crate) fn pos(&self) -> *mut u8 {
> }
>
> /// Returns the number of bytes written to the formatter.
> - pub(crate) fn bytes_written(&self) -> usize {
> + pub fn bytes_written(&self) -> usize {
> self.pos - self.beg
> }
> }
> @@ -828,7 +828,7 @@ fn write_str(&mut self, s: &str) -> fmt::Result {
> /// Allows formatting of [`fmt::Arguments`] into a raw buffer.
> ///
> /// Fails if callers attempt to write more than will fit in the buffer.
> -pub(crate) struct Formatter<'a>(RawFormatter, PhantomData<&'a mut ()>);
> +pub struct Formatter<'a>(RawFormatter, PhantomData<&'a mut ()>);
>
> impl Formatter<'_> {
> /// Creates a new instance of [`Formatter`] with the given buffer.
> @@ -843,8 +843,7 @@ pub(crate) unsafe fn from_buffer(buf: *mut u8, len: usize) -> Self {
> }
>
> /// Create a new [`Self`] instance.
> - #[expect(dead_code)]
> - pub(crate) fn new(buffer: &mut [u8]) -> Self {
> + pub fn new(buffer: &mut [u8]) -> Self {
> // SAFETY: `buffer` is valid for writes for the entire length for
> // the lifetime of `Self`.
> unsafe { Formatter::from_buffer(buffer.as_mut_ptr(), buffer.len()) }
>
> --
> 2.47.2
>
>
>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>