pub struct BytecodeCompiler { /* private fields */ }
Expand description
An entity to perform Python bytecode compilation.
Implementations§
Source§impl BytecodeCompiler
impl BytecodeCompiler
Sourcepub fn new(
python: &Path,
script_dir: impl AsRef<Path>,
) -> Result<BytecodeCompiler>
pub fn new( python: &Path, script_dir: impl AsRef<Path>, ) -> Result<BytecodeCompiler>
Create a bytecode compiler using a Python executable.
A Python process will be started and it will start executing a Python source file embedded in this crate. That process interacts with this object via a pipe, which is used to send bytecode compilation requests and receive the compiled bytecode. The process is terminated when this object is dropped.
A Python script is written to the directory passed. This should ideally be a temporary directory. The file name is deterministic, so it isn’t safe for multiple callers to simultaneously pass the same directory. The temporary file is deleted before this function returns. Ideally this function would use a proper temporary file internally. The reason this isn’t done is to avoid an extra crate dependency.
Trait Implementations§
Source§impl Debug for BytecodeCompiler
impl Debug for BytecodeCompiler
Source§impl Drop for BytecodeCompiler
impl Drop for BytecodeCompiler
Source§impl PythonBytecodeCompiler for BytecodeCompiler
impl PythonBytecodeCompiler for BytecodeCompiler
Source§fn get_magic_number(&self) -> u32
fn get_magic_number(&self) -> u32
Source§fn compile(
self: &mut BytecodeCompiler,
source: &[u8],
filename: &str,
optimize: BytecodeOptimizationLevel,
output_mode: CompileMode,
) -> Result<Vec<u8>>
fn compile( self: &mut BytecodeCompiler, source: &[u8], filename: &str, optimize: BytecodeOptimizationLevel, output_mode: CompileMode, ) -> Result<Vec<u8>>
Auto Trait Implementations§
impl Freeze for BytecodeCompiler
impl RefUnwindSafe for BytecodeCompiler
impl Send for BytecodeCompiler
impl Sync for BytecodeCompiler
impl Unpin for BytecodeCompiler
impl UnwindSafe for BytecodeCompiler
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> 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