Struct SDL_ProcessIO
#[repr(transparent)]pub struct SDL_ProcessIO(pub i32);
dep_sdl3
only.Expand description
Description of where standard I/O should be directed when creating a process.
If a standard I/O stream is set to SDL_PROCESS_STDIO_INHERITED
, it will go
to the same place as the application’s I/O stream. This is the default for
standard output and standard error.
If a standard I/O stream is set to SDL_PROCESS_STDIO_NULL
, it is connected
to NUL:
on Windows and /dev/null
on POSIX systems. This is the default
for standard input.
If a standard I/O stream is set to SDL_PROCESS_STDIO_APP
, it is connected
to a new SDL_IOStream
that is available to the application. Standard input
will be available as SDL_PROP_PROCESS_STDIN_POINTER
and allows
SDL_GetProcessInput()
, standard output will be available as
SDL_PROP_PROCESS_STDOUT_POINTER
and allows SDL_ReadProcess()
and
SDL_GetProcessOutput()
, and standard error will be available as
SDL_PROP_PROCESS_STDERR_POINTER
in the properties for the created
process.
If a standard I/O stream is set to SDL_PROCESS_STDIO_REDIRECT
, it is
connected to an existing SDL_IOStream
provided by the application. Standard
input is provided using SDL_PROP_PROCESS_CREATE_STDIN_POINTER
, standard
output is provided using SDL_PROP_PROCESS_CREATE_STDOUT_POINTER
, and
standard error is provided using SDL_PROP_PROCESS_CREATE_STDERR_POINTER
in the creation properties. These existing streams should be closed by the
application once the new process is created.
In order to use an SDL_IOStream
with SDL_PROCESS_STDIO_REDIRECT
, it must
have SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER
or
SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER
set. This is true for streams
representing files and process I/O.
§Availability
This enum is available since SDL 3.2.0.
§See also
SDL_CreateProcessWithProperties
SDL_GetProcessProperties
SDL_ReadProcess
SDL_GetProcessInput
SDL_GetProcessOutput
§Known values (sdl3-sys
)
Associated constant | Global constant | Description |
---|---|---|
INHERITED | SDL_PROCESS_STDIO_INHERITED | The I/O stream is inherited from the application. |
NULL | SDL_PROCESS_STDIO_NULL | The I/O stream is ignored. |
APP | SDL_PROCESS_STDIO_APP | The I/O stream is connected to a new SDL_IOStream that the application can read or write |
REDIRECT | SDL_PROCESS_STDIO_REDIRECT | The I/O stream is redirected to an existing SDL_IOStream . |
Tuple Fields§
§0: i32
Implementations§
§impl SDL_ProcessIO
impl SDL_ProcessIO
pub const INHERITED: SDL_ProcessIO
pub const INHERITED: SDL_ProcessIO
The I/O stream is inherited from the application.
pub const NULL: SDL_ProcessIO
pub const NULL: SDL_ProcessIO
The I/O stream is ignored.
pub const APP: SDL_ProcessIO
pub const APP: SDL_ProcessIO
The I/O stream is connected to a new SDL_IOStream
that the application can read or write
pub const REDIRECT: SDL_ProcessIO
pub const REDIRECT: SDL_ProcessIO
The I/O stream is redirected to an existing SDL_IOStream
.
Trait Implementations§
§impl Clone for SDL_ProcessIO
impl Clone for SDL_ProcessIO
§fn clone(&self) -> SDL_ProcessIO
fn clone(&self) -> SDL_ProcessIO
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Default for SDL_ProcessIO
impl Default for SDL_ProcessIO
§fn default() -> SDL_ProcessIO
fn default() -> SDL_ProcessIO
§impl From<SDL_ProcessIO> for i32
impl From<SDL_ProcessIO> for i32
§fn from(value: SDL_ProcessIO) -> i32
fn from(value: SDL_ProcessIO) -> i32
§impl Hash for SDL_ProcessIO
impl Hash for SDL_ProcessIO
§impl Ord for SDL_ProcessIO
impl Ord for SDL_ProcessIO
§impl PartialEq for SDL_ProcessIO
impl PartialEq for SDL_ProcessIO
§impl PartialOrd for SDL_ProcessIO
impl PartialOrd for SDL_ProcessIO
impl Copy for SDL_ProcessIO
impl Eq for SDL_ProcessIO
impl StructuralPartialEq for SDL_ProcessIO
Auto Trait Implementations§
impl Freeze for SDL_ProcessIO
impl RefUnwindSafe for SDL_ProcessIO
impl Send for SDL_ProcessIO
impl Sync for SDL_ProcessIO
impl Unpin for SDL_ProcessIO
impl UnwindSafe for SDL_ProcessIO
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> ByteSized for T
impl<T> ByteSized for T
Source§const BYTE_ALIGN: usize = _
const BYTE_ALIGN: usize = _
Source§fn byte_align(&self) -> usize
fn byte_align(&self) -> usize
Source§fn ptr_size_ratio(&self) -> [usize; 2]
fn ptr_size_ratio(&self) -> [usize; 2]
Source§impl<T, R> Chain<R> for Twhere
T: ?Sized,
impl<T, R> Chain<R> for Twhere
T: ?Sized,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> ExtAny for T
impl<T> ExtAny for T
Source§fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64
TypeId
of Self
using a custom hasher.Source§fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
fn as_any_mut(&mut self) -> &mut dyn Anywhere
Self: Sized,
Source§impl<T> ExtMem for Twhere
T: ?Sized,
impl<T> ExtMem for Twhere
T: ?Sized,
Source§const NEEDS_DROP: bool = _
const NEEDS_DROP: bool = _
Source§fn mem_align_of<T>() -> usize
fn mem_align_of<T>() -> usize
Source§fn mem_align_of_val(&self) -> usize
fn mem_align_of_val(&self) -> usize
Source§fn mem_size_of<T>() -> usize
fn mem_size_of<T>() -> usize
Source§fn mem_size_of_val(&self) -> usize
fn mem_size_of_val(&self) -> usize
Source§fn mem_needs_drop(&self) -> bool
fn mem_needs_drop(&self) -> bool
true
if dropping values of this type matters. Read moreSource§fn mem_forget(self)where
Self: Sized,
fn mem_forget(self)where
Self: Sized,
self
without running its destructor. Read moreSource§fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
fn mem_replace(&mut self, other: Self) -> Selfwhere
Self: Sized,
Source§unsafe fn mem_zeroed<T>() -> T
unsafe fn mem_zeroed<T>() -> T
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst
unsafe_layout
only.T
represented by the all-zero byte-pattern. Read moreSource§fn mem_as_bytes(&self) -> &[u8] ⓘ
fn mem_as_bytes(&self) -> &[u8] ⓘ
unsafe_slice
only.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Hook for T
impl<T> Hook for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more