pub enum MontyType {
Show 62 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,
Dataclass,
Instance(String),
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,
}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 class name as an owned
String, so a MontyType is always self-contained: it can be serialized,
sent over the subprocess wire protocol, and displayed without heap access.
Instance is output-only: a class binding cannot be reconstructed from a
name, so passing MontyType::Instance as an input is rejected with an
InvalidInputError (see MontyObject input conversion).
Variants§
Ellipsis
Type
NoneType
Bool
Int
Float
Range
Slice
Date
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
Dataclass
Instance(String)
An instance of a sandbox-defined class (class Foo: ...), carrying the
resolved class name (e.g. "Foo"). Output-only — rejected as an input.
#[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
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 ("object" and
class names return None); the wire carries instance types in a
dedicated field instead.
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> 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