Class: MilkTea::Types::Struct
- Inherits:
-
Base
- Object
- Base
- MilkTea::Types::Struct
show all
- Defined in:
- lib/milk_tea/core/types.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from Base
#accept, #bitwise?, #boolean?, #float?, #integer?, #numeric?, #sendable?, #void?
Constructor Details
#initialize(name, module_name: nil, external: false, packed: false, alignment: nil, linkage_name: nil, lifetime_params: []) ⇒ Struct
Returns a new instance of Struct.
905
906
907
908
909
910
911
912
913
914
915
916
917
|
# File 'lib/milk_tea/core/types.rb', line 905
def initialize(name, module_name: nil, external: false, packed: false, alignment: nil, linkage_name: nil, lifetime_params: [])
@name = name
@module_name = module_name
@external = external
@packed = packed
@alignment = alignment
@linkage_name = linkage_name
@lifetime_params = lifetime_params.freeze
@fields = {}
@events = {}
@nested_types = {}
@ast_declaration = nil
end
|
Instance Attribute Details
#alignment ⇒ Object
Returns the value of attribute alignment.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def alignment
@alignment
end
|
#ast_declaration ⇒ Object
Returns the value of attribute ast_declaration.
903
904
905
|
# File 'lib/milk_tea/core/types.rb', line 903
def ast_declaration
@ast_declaration
end
|
#external ⇒ Object
Returns the value of attribute external.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def external
@external
end
|
#lifetime_params ⇒ Object
Returns the value of attribute lifetime_params.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def lifetime_params
@lifetime_params
end
|
#linkage_name ⇒ Object
Returns the value of attribute linkage_name.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def linkage_name
@linkage_name
end
|
#module_name ⇒ Object
Returns the value of attribute module_name.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def module_name
@module_name
end
|
#name ⇒ Object
Returns the value of attribute name.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def name
@name
end
|
#nested_types ⇒ Object
Returns the value of attribute nested_types.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def nested_types
@nested_types
end
|
#packed ⇒ Object
Returns the value of attribute packed.
902
903
904
|
# File 'lib/milk_tea/core/types.rb', line 902
def packed
@packed
end
|
Instance Method Details
#children ⇒ Object
984
985
986
|
# File 'lib/milk_tea/core/types.rb', line 984
def children
fields.values
end
|
#define_events(events) ⇒ Object
924
925
926
927
|
# File 'lib/milk_tea/core/types.rb', line 924
def define_events(events)
@events = events.freeze
self
end
|
#define_fields(fields) ⇒ Object
919
920
921
922
|
# File 'lib/milk_tea/core/types.rb', line 919
def define_fields(fields)
@fields = fields.freeze
self
end
|
#define_nested_types(nested) ⇒ Object
929
930
931
932
|
# File 'lib/milk_tea/core/types.rb', line 929
def define_nested_types(nested)
@nested_types = nested.freeze
self
end
|
#eql?(other) ⇒ Boolean
Also known as:
==
964
965
966
967
968
969
970
971
972
|
# File 'lib/milk_tea/core/types.rb', line 964
def eql?(other)
other.class == self.class &&
other.name == name &&
other.module_name == module_name &&
other.external == external &&
other.packed == packed &&
other.alignment == alignment &&
other.linkage_name == linkage_name
end
|
#event(name) ⇒ Object
952
953
954
|
# File 'lib/milk_tea/core/types.rb', line 952
def event(name)
@events[name]
end
|
#events ⇒ Object
948
949
950
|
# File 'lib/milk_tea/core/types.rb', line 948
def events
@events
end
|
#field(name) ⇒ Object
944
945
946
|
# File 'lib/milk_tea/core/types.rb', line 944
def field(name)
@fields[name]
end
|
#field_c_name(name) ⇒ Object
960
961
962
|
# File 'lib/milk_tea/core/types.rb', line 960
def field_c_name(name)
name
end
|
#fields ⇒ Object
940
941
942
|
# File 'lib/milk_tea/core/types.rb', line 940
def fields
@fields
end
|
#has_events? ⇒ Boolean
956
957
958
|
# File 'lib/milk_tea/core/types.rb', line 956
def has_events?
!@events.empty?
end
|
#hash ⇒ Object
976
977
978
|
# File 'lib/milk_tea/core/types.rb', line 976
def hash
[self.class, name, module_name, external, packed, alignment, linkage_name].hash
end
|
#set_layout(packed:, alignment:) ⇒ Object
934
935
936
937
938
|
# File 'lib/milk_tea/core/types.rb', line 934
def set_layout(packed:, alignment:)
@packed = packed
@alignment = alignment
self
end
|
#to_s ⇒ Object
980
981
982
|
# File 'lib/milk_tea/core/types.rb', line 980
def to_s
module_name ? "#{module_name}.#{name}" : name
end
|