Struct cpython::PyString

source ·
pub struct PyString(/* private fields */);
Expand description

Represents a Python string. Corresponds to basestring in Python 2, and str in Python 3.

Implementations§

source§

impl PyString

source

pub fn new(py: Python<'_>, s: &str) -> PyString

Creates a new Python string object.

On Python 2.7, this function will create a byte string if the feature py2-no-auto-unicode-promotion is set, or the input input string is ASCII-only; otherwise, the input string will be converted to a unicode string. Use PyUnicode::new() to always create a unicode string.

On Python 3.x, this function always creates unicode str objects.

Panics if out of memory.

source

pub fn data(&self, py: Python<'_>) -> PyStringData<'_>

Gets the python string data in its underlying representation.

For Python 2 byte strings, this function always returns PyStringData::Utf8, even if the bytes are not valid UTF-8. For unicode strings, returns the underlying representation used by Python.

source

pub fn to_string(&self, py: Python<'_>) -> PyResult<Cow<'_, str>>

Convert the PyString into a Rust string.

On Python 2.7, if the PyString refers to a byte string, it will be decoded using UTF-8.

Returns a UnicodeDecodeError if the input is not valid unicode (containing unpaired surrogates, or a Python 2.7 byte string that is not valid UTF-8).

source

pub fn to_string_lossy(&self, py: Python<'_>) -> Cow<'_, str>

Convert the PyString into a Rust string.

On Python 2.7, if the PyString refers to a byte string, it will be decoded using UTF-8.

Unpaired surrogates and (on Python 2.7) invalid UTF-8 sequences are replaced with U+FFFD REPLACEMENT CHARACTER.

Trait Implementations§

source§

impl<'s> FromPyObject<'s> for &'s PyString

source§

fn extract(py: Python<'_>, obj: &'s PyObject) -> PyResult<&'s PyString>

Extracts Self from the source PyObject.
source§

impl<'s> FromPyObject<'s> for PyString

source§

fn extract(py: Python<'_>, obj: &'s PyObject) -> PyResult<PyString>

Extracts Self from the source PyObject.
source§

impl PythonObject for PyString

source§

unsafe fn unchecked_downcast_from(obj: PyObject) -> Self

Unchecked downcast from PyObject to Self. Undefined behavior if the input object does not have the expected type.

source§

unsafe fn unchecked_downcast_borrow_from<'a>(obj: &'a PyObject) -> &'a Self

Unchecked downcast from PyObject to Self. Undefined behavior if the input object does not have the expected type.

source§

fn as_object(&self) -> &PyObject

Casts the Python object to PyObject.
source§

fn into_object(self) -> PyObject

Casts the Python object to PyObject.
source§

impl PythonObjectWithCheckedDowncast for PyString

source§

fn downcast_from<'p>( py: Python<'p>, obj: PyObject, ) -> Result<PyString, PythonObjectDowncastError<'p>>

Cast from PyObject to a concrete Python object type.
source§

fn downcast_borrow_from<'a, 'p>( py: Python<'p>, obj: &'a PyObject, ) -> Result<&'a PyString, PythonObjectDowncastError<'p>>

Cast from PyObject to a concrete Python object type.
source§

impl PythonObjectWithTypeObject for PyString

source§

fn type_object(py: Python<'_>) -> PyType

Retrieves the type object for this Python object type.
source§

impl ToPyObject for PyString

Identity conversion: allows using existing PyObject instances where T: ToPyObject is expected.

§

type ObjectType = PyString

source§

fn to_py_object(&self, py: Python<'_>) -> PyString

Converts self into a Python object.
source§

fn into_py_object(self, _py: Python<'_>) -> PyString

Converts self into a Python object. Read more
source§

fn with_borrowed_ptr<F, R>(&self, _py: Python<'_>, f: F) -> R
where F: FnOnce(*mut PyObject) -> R,

Converts self into a Python object and calls the specified closure on the native FFI pointer underlying the Python object. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> PyClone for T
where T: PythonObject,

source§

fn clone_ref(&self, py: Python<'_>) -> T

source§

impl<T> PyDrop for T
where T: PythonObject,

source§

fn release_ref(self, _py: Python<'_>)

source§

impl<T> RefFromPyObject for T
where &'a T: for<'a> FromPyObject<'a>, T: ?Sized,

source§

fn with_extracted<F, R>( py: Python<'_>, obj: &PyObject, f: F, ) -> Result<R, PyErr>
where F: FnOnce(&T) -> R,

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.