rust: str: expose str::{Formatter, RawFormatter} publicly.

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>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Signed-off-by: Andreas Hindborg <a.hindborg@kernel.org>
Link: https://lore.kernel.org/r/20250902-rnull-up-v6-16-v7-3-b5212cc89b98@kernel.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Andreas Hindborg 2025-09-02 11:54:57 +02:00 committed by Jens Axboe
parent 87482d6d91
commit 8c5ac71cf1

View File

@ -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()) }