pub enum GosValue {
Show 29 variants
Nil(GosMetadata),
Bool(bool),
Int(isize),
Int8(i8),
Int16(i16),
Int32(i32),
Int64(i64),
Uint(usize),
Uint8(u8),
Uint16(u16),
Uint32(u32),
Uint64(u64),
Float32(OrderedFloat<f32>),
Float64(OrderedFloat<f64>),
Complex64(OrderedFloat<f32>, OrderedFloat<f32>),
Complex128(Box<(OrderedFloat<f64>, OrderedFloat<f64>)>),
Function(FunctionKey),
Package(PackageKey),
Metadata(GosMetadata),
Str(Rc<StringObj>),
Array(Rc<(ArrayObj, RCount)>),
Pointer(Box<PointerObj>),
Closure(Rc<(RefCell<ClosureObj>, RCount)>),
Slice(Rc<(SliceObj, RCount)>),
Map(Rc<(MapObj, RCount)>),
Interface(Rc<RefCell<InterfaceObj>>),
Struct(Rc<(RefCell<StructObj>, RCount)>),
Channel(Rc<ChannelObj>),
Named(Box<(GosValue, GosMetadata)>),
}
Variants§
Nil(GosMetadata)
Bool(bool)
Int(isize)
Int8(i8)
Int16(i16)
Int32(i32)
Int64(i64)
Uint(usize)
Uint8(u8)
Uint16(u16)
Uint32(u32)
Uint64(u64)
Float32(OrderedFloat<f32>)
Float64(OrderedFloat<f64>)
Complex64(OrderedFloat<f32>, OrderedFloat<f32>)
Complex128(Box<(OrderedFloat<f64>, OrderedFloat<f64>)>)
Function(FunctionKey)
Package(PackageKey)
Metadata(GosMetadata)
Str(Rc<StringObj>)
Array(Rc<(ArrayObj, RCount)>)
Pointer(Box<PointerObj>)
Closure(Rc<(RefCell<ClosureObj>, RCount)>)
Slice(Rc<(SliceObj, RCount)>)
Map(Rc<(MapObj, RCount)>)
Interface(Rc<RefCell<InterfaceObj>>)
Struct(Rc<(RefCell<StructObj>, RCount)>)
Channel(Rc<ChannelObj>)
Named(Box<(GosValue, GosMetadata)>)
Implementations§
Source§impl GosValue
impl GosValue
pub fn new_nil() -> GosValue
pub fn new_str(s: String) -> GosValue
pub fn new_pointer(v: PointerObj) -> GosValue
pub fn array_with_size( size: usize, val: &GosValue, meta: GosMetadata, gcobjs: &GcoVec, ) -> GosValue
pub fn array_with_val( val: Vec<GosValue>, meta: GosMetadata, gcobjs: &GcoVec, ) -> GosValue
pub fn new_slice( len: usize, cap: usize, meta: GosMetadata, dval: Option<&GosValue>, gcobjs: &GcoVec, ) -> GosValue
pub fn new_slice_nil(meta: GosMetadata, gcobjs: &GcoVec) -> GosValue
pub fn slice_with_val( val: Vec<GosValue>, meta: GosMetadata, gcobjs: &GcoVec, ) -> GosValue
pub fn slice_with_array( arr: &GosValue, begin: isize, end: isize, gcobjs: &GcoVec, ) -> GosValue
pub fn new_map( meta: GosMetadata, default_val: GosValue, gcobjs: &GcoVec, ) -> GosValue
pub fn new_map_nil( meta: GosMetadata, default_val: GosValue, gcobjs: &GcoVec, ) -> GosValue
pub fn new_struct(obj: StructObj, gcobjs: &GcoVec) -> GosValue
pub fn new_function( package: PackageKey, meta: GosMetadata, objs: &mut VMObjects, gcv: &GcoVec, flag: FuncFlag, ) -> GosValue
pub fn new_closure(fkey: FunctionKey, fobjs: &FunctionObjs) -> GosValue
pub fn new_runtime_closure(clsobj: ClosureObj, gcobjs: &GcoVec) -> GosValue
pub fn new_iface(meta: GosMetadata, underlying: IfaceUnderlying) -> GosValue
pub fn new_empty_iface(mdata: &Metadata, underlying: GosValue) -> GosValue
pub fn new_channel(meta: GosMetadata, cap: usize) -> GosValue
pub fn new_meta(t: MetadataType, metas: &mut MetadataObjs) -> GosValue
pub fn as_bool(&self) -> &bool
pub fn as_int(&self) -> &isize
pub fn as_uint8(&self) -> &u8
pub fn as_int32(&self) -> &i32
pub fn as_int_mut(&mut self) -> &mut isize
pub fn as_float(&self) -> &f64
pub fn as_str(&self) -> &Rc<StringObj>
pub fn as_array(&self) -> &Rc<(ArrayObj, RCount)>
pub fn as_slice(&self) -> &Rc<(SliceObj, RCount)>
pub fn as_map(&self) -> &Rc<(MapObj, RCount)>
pub fn as_interface(&self) -> &Rc<RefCell<InterfaceObj>>
pub fn as_channel(&self) -> &Rc<ChannelObj>
pub fn as_function(&self) -> &FunctionKey
pub fn as_package(&self) -> &PackageKey
pub fn as_struct(&self) -> &Rc<(RefCell<StructObj>, RCount)>
pub fn as_closure(&self) -> &Rc<(RefCell<ClosureObj>, RCount)>
pub fn as_meta(&self) -> &GosMetadata
pub fn as_pointer(&self) -> &Box<PointerObj>
pub fn as_named(&self) -> &Box<(GosValue, GosMetadata)>
pub fn is_nil(&self) -> bool
pub fn try_get_struct(&self) -> Option<&Rc<(RefCell<StructObj>, RCount)>>
pub fn try_get_map(&self) -> Option<&Rc<(MapObj, RCount)>>
pub fn iface_underlying(&self) -> Option<GosValue>
pub fn equals_nil(&self) -> bool
pub fn get_type(&self) -> ValueType
pub fn identical(&self, other: &GosValue) -> bool
pub fn get_meta(&self, objs: &VMObjects, stack: &Stack) -> GosMetadata
pub fn copy_semantic(&self, gcos: &GcoVec) -> GosValue
pub fn deep_clone(&self, gcos: &GcoVec) -> GosValue
pub fn add_str(a: &GosValue, b: &GosValue) -> GosValue
Sourcepub fn ref_sub_one(&self)
pub fn ref_sub_one(&self)
for gc
Sourcepub fn mark_dirty(&self, queue: &mut RCQueue)
pub fn mark_dirty(&self, queue: &mut RCQueue)
for gc
pub fn rc(&self) -> IRC
pub fn set_rc(&self, rc: IRC)
Trait Implementations§
Source§impl Ord for GosValue
impl Ord for GosValue
Source§impl PartialOrd for GosValue
impl PartialOrd for GosValue
impl Eq for GosValue
Auto Trait Implementations§
impl Freeze for GosValue
impl !RefUnwindSafe for GosValue
impl !Send for GosValue
impl !Sync for GosValue
impl Unpin for GosValue
impl !UnwindSafe for GosValue
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
Mutably borrows from an owned value. Read more