Enum erg_compiler::ty::value::ValueObj

source ·
pub enum ValueObj {
Show 21 variants Int(i32), Nat(u64), Float(f64), Str(Str), Bool(bool), List(ArcArray<ValueObj>), UnsizedList(Box<ValueObj>), Set(Set<ValueObj>), Dict(Dict<ValueObj, ValueObj>), Tuple(ArcArray<ValueObj>), Record(Dict<Field, ValueObj>), DataClass { name: Str, fields: Dict<Field, ValueObj>, }, Code(Box<CodeObj>), Subr(ConstSubr), Type(TypeObj), None, Ellipsis, NotImplemented, NegInf, Inf, Failure,
}
Expand description

値オブジェクト コンパイル時評価ができ、シリアライズも可能(Typeなどはシリアライズ不可)

Variants§

§

Int(i32)

§

Nat(u64)

§

Float(f64)

§

Str(Str)

§

Bool(bool)

§

List(ArcArray<ValueObj>)

§

UnsizedList(Box<ValueObj>)

§

Set(Set<ValueObj>)

§

Dict(Dict<ValueObj, ValueObj>)

§

Tuple(ArcArray<ValueObj>)

§

Record(Dict<Field, ValueObj>)

§

DataClass

Fields

§name: Str
§

Code(Box<CodeObj>)

§

Subr(ConstSubr)

§

Type(TypeObj)

§

None

§

Ellipsis

§

NotImplemented

§

NegInf

§

Inf

different from Float.Inf

§

Failure

Implementations§

source§

impl ValueObj

source

pub const fn builtin_class(t: Type) -> Self

source

pub const fn builtin_trait(t: Type) -> Self

source

pub fn builtin_type(t: Type) -> Self

source

pub const fn gen_t(gen: GenTypeObj) -> Self

source

pub fn range(start: Self, end: Self) -> Self

closed range (..)

source

pub fn tuple<V: Into<ValueObj>>(elems: Vec<V>) -> Self

source

pub const fn is_none(&self) -> bool

source

pub const fn is_num(&self) -> bool

source

pub const fn is_float(&self) -> bool

source

pub const fn is_int(&self) -> bool

source

pub const fn is_nat(&self) -> bool

source

pub const fn is_bool(&self) -> bool

source

pub const fn is_true(&self) -> bool

source

pub const fn is_false(&self) -> bool

source

pub const fn is_str(&self) -> bool

source

pub const fn is_type(&self) -> bool

source

pub const fn is_inited(&self) -> bool

source

pub fn is_complete(&self) -> bool

source

pub const fn is_container(&self) -> bool

source

pub fn from_str(t: Type, content: Str) -> Option<Self>

source

pub fn into_bytes(self, python_ver: PythonVersion) -> Vec<u8>

source

pub fn from_const_expr(expr: ConstExpr) -> Self

source

pub fn tuple_from_const_args(args: ConstArgs) -> Self

source

pub fn vec_from_const_args(args: ConstArgs) -> Vec<Self>

source

pub fn class(&self) -> Type

source

pub fn as_int(&self) -> Option<i32>

source

pub fn as_float(&self) -> Option<f64>

source

pub fn as_str(&self) -> Option<&Str>

source

pub fn try_binary(self, other: Self, op: OpKind) -> Option<Self>

source

pub fn try_cmp(&self, other: &Self) -> Option<Ordering>

source

pub fn try_add(self, other: Self) -> Option<Self>

source

pub fn try_sub(self, other: Self) -> Option<Self>

source

pub fn try_mul(self, other: Self) -> Option<Self>

source

pub fn try_div(self, other: Self) -> Option<Self>

source

pub fn try_floordiv(self, other: Self) -> Option<Self>

source

pub fn try_pow(self, other: Self) -> Option<Self>

source

pub fn try_mod(self, other: Self) -> Option<Self>

source

pub fn try_gt(self, other: Self) -> Option<Self>

source

pub fn try_ge(self, other: Self) -> Option<Self>

source

pub fn try_lt(self, other: Self) -> Option<Self>

source

pub fn try_le(self, other: Self) -> Option<Self>

source

pub fn try_eq(self, other: Self) -> Option<Self>

source

pub fn try_ne(self, other: Self) -> Option<Self>

source

pub fn try_or(self, other: Self) -> Option<Self>

source

pub fn try_get_attr(&self, attr: &Field) -> Option<Self>

source

pub fn as_type(&self, ctx: &Context) -> Option<TypeObj>

Trait Implementations§

source§

impl Clone for ValueObj

source§

fn clone(&self) -> ValueObj

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ValueObj

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for ValueObj

source§

fn default() -> ValueObj

Returns the “default value” for a type. Read more
source§

impl Display for ValueObj

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl From<&str> for ValueObj

source§

fn from(item: &str) -> Self

Converts to this type from the input type.
source§

impl<const N: usize, V: Into<ValueObj>> From<[V; N]> for ValueObj

source§

fn from(item: [V; N]) -> Self

Converts to this type from the input type.
source§

impl From<CodeObj> for ValueObj

source§

fn from(item: CodeObj) -> Self

Converts to this type from the input type.
source§

impl From<Str> for ValueObj

source§

fn from(item: Str) -> Self

Converts to this type from the input type.
source§

impl From<String> for ValueObj

source§

fn from(item: String) -> Self

Converts to this type from the input type.
source§

impl<V: Into<ValueObj>> From<Vec<V>> for ValueObj

source§

fn from(item: Vec<V>) -> Self

Converts to this type from the input type.
source§

impl From<bool> for ValueObj

source§

fn from(item: bool) -> Self

Converts to this type from the input type.
source§

impl From<f64> for ValueObj

source§

fn from(item: f64) -> Self

Converts to this type from the input type.
source§

impl From<i32> for ValueObj

source§

fn from(item: i32) -> Self

Converts to this type from the input type.
source§

impl From<u64> for ValueObj

source§

fn from(item: u64) -> Self

Converts to this type from the input type.
source§

impl From<usize> for ValueObj

source§

fn from(item: usize) -> Self

Converts to this type from the input type.
source§

impl HasType for ValueObj

source§

fn t(&self) -> Type

その要素だけの集合型を返す、クラスが欲しい場合は.classで

source§

fn ref_t(&self) -> &Type

source§

fn ref_mut_t(&mut self) -> Option<&mut Type>

source§

fn signature_t(&self) -> Option<&Type>

source§

fn signature_mut_t(&mut self) -> Option<&mut Type>

source§

fn inner_ts(&self) -> Vec<Type>

source§

fn lhs_t(&self) -> &Type

source§

fn rhs_t(&self) -> &Type

source§

impl Hash for ValueObj

source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl LimitedDisplay for ValueObj

source§

fn limited_fmt<W: Write>(&self, f: &mut W, limit: isize) -> Result

If limit was set to a negative value, it will be displayed without abbreviation. FIXME:
source§

fn to_string_unabbreviated(&self) -> String

source§

impl Neg for ValueObj

§

type Output = ValueObj

The resulting type after applying the - operator.
source§

fn neg(self) -> Self

Performs the unary - operation. Read more
source§

impl PartialEq for ValueObj

source§

fn eq(&self, other: &ValueObj) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a> TryFrom<&'a ValueObj> for &'a Type

§

type Error = ()

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

fn try_from(val: &'a ValueObj) -> Result<Self, ()>

Performs the conversion.
source§

impl TryFrom<&ValueObj> for f64

§

type Error = ()

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

fn try_from(val: &ValueObj) -> Result<f64, Self::Error>

Performs the conversion.
source§

impl TryFrom<&ValueObj> for usize

§

type Error = ()

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

fn try_from(val: &ValueObj) -> Result<usize, Self::Error>

Performs the conversion.
source§

impl TryFrom<TyParam> for ValueObj

§

type Error = ()

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

fn try_from(tp: TyParam) -> Result<Self, ()>

Performs the conversion.
source§

impl Eq for ValueObj

source§

impl StructuralPartialEq for ValueObj

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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
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.