From f44d0440959957364dc2b621d6809e8a15153021 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 23 Apr 2025 18:07:40 -0700 Subject: [PATCH] Remove Utf8CStrBuffer --- native/src/base/cstr.rs | 59 +---------------------------------------- 1 file changed, 1 insertion(+), 58 deletions(-) diff --git a/native/src/base/cstr.rs b/native/src/base/cstr.rs index ecbdf4991..44b2a63a5 100644 --- a/native/src/base/cstr.rs +++ b/native/src/base/cstr.rs @@ -4,7 +4,7 @@ use std::borrow::Borrow; use std::cmp::min; use std::ffi::{CStr, FromBytesWithNulError, OsStr}; use std::fmt::{Debug, Display, Formatter, Write}; -use std::ops::{Deref, DerefMut}; +use std::ops::Deref; use std::os::unix::ffi::OsStrExt; use std::path::{Path, PathBuf}; use std::str::Utf8Error; @@ -66,63 +66,6 @@ pub mod buf { } } -// Union type for storing a Utf8CStrBuf value - -pub enum Utf8CStrBuffer<'a, const N: usize> { - Array(Utf8CStrBufArr), - Reference(Utf8CStrBufRef<'a>), - Dynamic(Utf8CString), - Wrap(&'a mut dyn Utf8CStrBuf), -} - -impl<'a, const N: usize> Deref for Utf8CStrBuffer<'a, N> { - type Target = dyn Utf8CStrBuf + 'a; - - fn deref(&self) -> &Self::Target { - match self { - Utf8CStrBuffer::Array(s) => s, - Utf8CStrBuffer::Reference(s) => s, - Utf8CStrBuffer::Dynamic(s) => s, - Utf8CStrBuffer::Wrap(s) => *s, - } - } -} - -impl DerefMut for Utf8CStrBuffer<'_, N> { - fn deref_mut(&mut self) -> &mut Self::Target { - match self { - Utf8CStrBuffer::Array(s) => s, - Utf8CStrBuffer::Reference(s) => s, - Utf8CStrBuffer::Dynamic(s) => s, - Utf8CStrBuffer::Wrap(s) => *s, - } - } -} - -impl From for Utf8CStrBuffer<'static, 0> { - fn from(value: Utf8CString) -> Self { - Utf8CStrBuffer::Dynamic(value) - } -} - -impl From> for Utf8CStrBuffer<'static, N> { - fn from(value: Utf8CStrBufArr) -> Self { - Utf8CStrBuffer::Array(value) - } -} - -impl<'a> From<&'a mut dyn Utf8CStrBuf> for Utf8CStrBuffer<'a, 0> { - fn from(value: &'a mut dyn Utf8CStrBuf) -> Self { - Utf8CStrBuffer::Wrap(value) - } -} - -impl Default for Utf8CStrBuffer<'static, 4096> { - fn default() -> Self { - Utf8CStrBuffer::Array(buf::default()) - } -} - // Trait definitions pub trait Utf8CStrBuf: Write + AsRef + Deref {