Class: MilkTea::Types::Dyn
Instance Attribute Summary collapse
-
#hash ⇒ Object
readonly
Returns the value of attribute hash.
-
#interface_binding ⇒ Object
readonly
Returns the value of attribute interface_binding.
-
#type_arguments ⇒ Object
readonly
Returns the value of attribute type_arguments.
Instance Method Summary collapse
- #children ⇒ Object
- #eql?(other) ⇒ Boolean (also: #==)
- #field(name) ⇒ Object
-
#initialize(interface_binding, type_arguments = []) ⇒ Dyn
constructor
A new instance of Dyn.
- #to_s ⇒ Object
Methods inherited from Base
#accept, #bitwise?, #boolean?, #field_c_name, #float?, #integer?, #numeric?, #sendable?, #void?
Constructor Details
#initialize(interface_binding, type_arguments = []) ⇒ Dyn
Returns a new instance of Dyn.
1640 1641 1642 1643 1644 1645 |
# File 'lib/milk_tea/core/types.rb', line 1640 def initialize(interface_binding, type_arguments = []) @interface_binding = interface_binding @type_arguments = type_arguments @hash = [self.class, interface_binding, type_arguments].hash freeze end |
Instance Attribute Details
#hash ⇒ Object (readonly)
Returns the value of attribute hash.
1653 1654 1655 |
# File 'lib/milk_tea/core/types.rb', line 1653 def hash @hash end |
#interface_binding ⇒ Object (readonly)
Returns the value of attribute interface_binding.
1638 1639 1640 |
# File 'lib/milk_tea/core/types.rb', line 1638 def interface_binding @interface_binding end |
#type_arguments ⇒ Object (readonly)
Returns the value of attribute type_arguments.
1638 1639 1640 |
# File 'lib/milk_tea/core/types.rb', line 1638 def type_arguments @type_arguments end |
Instance Method Details
#children ⇒ Object
1668 1669 1670 |
# File 'lib/milk_tea/core/types.rb', line 1668 def children type_arguments end |
#eql?(other) ⇒ Boolean Also known as: ==
1647 1648 1649 |
# File 'lib/milk_tea/core/types.rb', line 1647 def eql?(other) other.is_a?(Dyn) && other.interface_binding == interface_binding && other.type_arguments == type_arguments end |
#field(name) ⇒ Object
1663 1664 1665 1666 |
# File 'lib/milk_tea/core/types.rb', line 1663 def field(name) void_ptr = GenericInstance.new("ptr", [Primitive.new("void")]) { "data" => void_ptr, "vtable" => void_ptr }[name] end |
#to_s ⇒ Object
1655 1656 1657 1658 1659 1660 1661 |
# File 'lib/milk_tea/core/types.rb', line 1655 def to_s if type_arguments.any? "dyn[#{interface_binding.name}[#{type_arguments.map(&:to_s).join(', ')}]]" else "dyn[#{interface_binding.name}]" end end |