pub enum MontyType {
Show 69 variants
Ellipsis,
Type,
NoneType,
Bool,
Int,
Float,
Range,
Slice,
Date,
DateTime,
TimeDelta,
TimeZone,
Str,
Bytes,
List,
Deque,
ListIterator,
CallableIterator,
Tuple,
NamedTuple,
Dict,
DictKeys,
DictItems,
DictValues,
Set,
FrozenSet,
Instance(Box<MontyClassType>),
Exception(ExcType),
Function,
BuiltinFunction,
Cell,
Iterator,
Coroutine,
Module,
TextIOWrapper,
BufferedReader,
BufferedWriter,
BufferedRandom,
SpecialForm,
Path,
Property,
RePattern,
ReMatch,
TupleIterator,
StrAsciiIterator,
StrIterator,
BytesIterator,
RangeIterator,
DictKeyIterator,
DictItemIterator,
DictValueIterator,
SetIterator,
ItertoolsCount,
ItertoolsRepeat,
Field,
ItertoolsPairwise,
ItertoolsCompress,
ItertoolsIslice,
ItertoolsChain,
ItertoolsCycle,
NotImplementedType,
DataclassParams,
ItertoolsTakeWhile,
ItertoolsDropWhile,
ItertoolsFilterFalse,
ItertoolsStarMap,
Object,
Time,
Partial,
}Expand description
The Python type of a value at the host boundary — the public mirror of the
internal runtime Type enum.
Where the runtime Type::Instance carries a transient heap id, the public
MontyType::Instance carries the resolved MontyClassType (name, uuid,
flags), so a MontyType is always self-contained: it can be serialized,
sent over the subprocess wire protocol, and displayed without heap access.
A sandbox class type is output-only: its class binding cannot be
reconstructed host-side, so passing one back as an input is rejected with
an InvalidInputError. Host class types round-trip.
Variants§
Ellipsis
Type
NoneType
Bool
Int
Float
Range
Slice
Date
The four datetime classes carry the qualified names the runtime
Type uses (datetime.date, …) rather than bare date, so a type
object keeps one name either side of the boundary.
DateTime
TimeDelta
TimeZone
Str
Bytes
List
Deque
collections.deque. Qualified like datetime.datetime so the
host-boundary name matches the runtime Type::Deque (collections.deque)
rather than a bare deque.
ListIterator
CallableIterator
Tuple
NamedTuple
Dict
DictKeys
DictItems
DictValues
Set
FrozenSet
Instance(Box<MontyClassType>)
A non-builtin class type object — a sandbox-defined or host-defined
class, carrying the resolved MontyClassType (name, uuid, flags).
Sandbox class types are output-only (rejected as inputs); host class
types round-trip.
#[strum(disabled)]: excluded from EnumIter (no meaningful default
name; the name round-trip tests iterate the nameable variants only).
Exception(ExcType)
Exception types render/parse via ExcType’s own strum name
("ValueError", "json.JSONDecodeError", …), so this variant is
#[strum(disabled)]: name and
from_type_name peel Exception off
explicitly.
Function
BuiltinFunction
Cell
Iterator
Coroutine
Module
TextIOWrapper
BufferedReader
BufferedWriter
BufferedRandom
SpecialForm
Path
Property
RePattern
ReMatch
TupleIterator
StrAsciiIterator
StrIterator
BytesIterator
RangeIterator
DictKeyIterator
DictItemIterator
DictValueIterator
SetIterator
ItertoolsCount
ItertoolsRepeat
Field
A dataclasses.Field describing one field of a sandbox @dataclass,
as found in a class’s __dataclass_fields__.
ItertoolsPairwise
ItertoolsCompress
ItertoolsIslice
ItertoolsChain
ItertoolsCycle
NotImplementedType
DataclassParams
The __dataclass_params__ of a sandbox @dataclass: the options it was
decorated with, named as CPython’s private class reports itself.
ItertoolsTakeWhile
ItertoolsDropWhile
ItertoolsFilterFalse
ItertoolsStarMap
Object
The builtin object, which the sandbox exposes as a name only — it is
not a base class and cannot be constructed.
Time
Partial
functools.partial, qualified the way CPython’s tp_name is.
Implementations§
Source§impl MontyType
impl MontyType
Sourcepub fn name(&self) -> &str
pub fn name(&self) -> &str
The Python-visible name of this type ("int", "datetime.datetime",
"ValueError", or the class name for Instance).
Sourcepub fn from_type_name(name: &str) -> Option<MontyType>
pub fn from_type_name(name: &str) -> Option<MontyType>
Parses a name produced by Display/name
back to the MontyType — the wire-protocol decode path for builtin
type names. Never yields Instance: class names
return None (the wire carries instance types in a dedicated field
instead), and "object" parses to the builtin Object.
EnumString parses via the same strum serialize attributes that
IntoStaticStr renders with, so the two stay in lockstep by
construction. Exception types display as their exception name
(“ValueError”, “json.JSONDecodeError”, …) — fall back to the
ExcType parser.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for MontyType
impl<'de> Deserialize<'de> for MontyType
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MontyType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MontyType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for MontyType
Source§impl IntoEnumIterator for MontyType
impl IntoEnumIterator for MontyType
Source§impl Serialize for MontyType
impl Serialize for MontyType
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for MontyType
Auto Trait Implementations§
impl Freeze for MontyType
impl RefUnwindSafe for MontyType
impl Send for MontyType
impl Sync for MontyType
impl Unpin for MontyType
impl UnsafeUnpin for MontyType
impl UnwindSafe for MontyType
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.Source§impl<T> ToCharString for Twhere
T: Display,
impl<T> ToCharString for Twhere
T: Display,
Source§fn try_to_char_string(&self) -> Result<CharString, ToCharStringError>
fn try_to_char_string(&self) -> Result<CharString, ToCharStringError>
CharString. Read moreSource§fn to_char_string(&self) -> CharString
fn to_char_string(&self) -> CharString
CharString. Read moreSource§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string() Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString. Read more