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.
900
901
902
903
904
905
906
907
908
909
910
911
912
|
# File 'lib/milk_tea/core/types.rb', line 900
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.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def alignment
@alignment
end
|
#ast_declaration ⇒ Object
Returns the value of attribute ast_declaration.
898
899
900
|
# File 'lib/milk_tea/core/types.rb', line 898
def ast_declaration
@ast_declaration
end
|
#external ⇒ Object
Returns the value of attribute external.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def external
@external
end
|
#lifetime_params ⇒ Object
Returns the value of attribute lifetime_params.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def lifetime_params
@lifetime_params
end
|
#linkage_name ⇒ Object
Returns the value of attribute linkage_name.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def linkage_name
@linkage_name
end
|
#module_name ⇒ Object
Returns the value of attribute module_name.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def module_name
@module_name
end
|
#name ⇒ Object
Returns the value of attribute name.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def name
@name
end
|
#nested_types ⇒ Object
Returns the value of attribute nested_types.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def nested_types
@nested_types
end
|
#packed ⇒ Object
Returns the value of attribute packed.
897
898
899
|
# File 'lib/milk_tea/core/types.rb', line 897
def packed
@packed
end
|
Instance Method Details
#children ⇒ Object
979
980
981
|
# File 'lib/milk_tea/core/types.rb', line 979
def children
fields.values
end
|
#define_events(events) ⇒ Object
919
920
921
922
|
# File 'lib/milk_tea/core/types.rb', line 919
def define_events(events)
@events = events.freeze
self
end
|
#define_fields(fields) ⇒ Object
914
915
916
917
|
# File 'lib/milk_tea/core/types.rb', line 914
def define_fields(fields)
@fields = fields.freeze
self
end
|
#define_nested_types(nested) ⇒ Object
924
925
926
927
|
# File 'lib/milk_tea/core/types.rb', line 924
def define_nested_types(nested)
@nested_types = nested.freeze
self
end
|
#eql?(other) ⇒ Boolean
Also known as:
==
959
960
961
962
963
964
965
966
967
|
# File 'lib/milk_tea/core/types.rb', line 959
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
947
948
949
|
# File 'lib/milk_tea/core/types.rb', line 947
def event(name)
@events[name]
end
|
#events ⇒ Object
943
944
945
|
# File 'lib/milk_tea/core/types.rb', line 943
def events
@events
end
|
#field(name) ⇒ Object
939
940
941
|
# File 'lib/milk_tea/core/types.rb', line 939
def field(name)
@fields[name]
end
|
#field_c_name(name) ⇒ Object
955
956
957
|
# File 'lib/milk_tea/core/types.rb', line 955
def field_c_name(name)
name
end
|
#fields ⇒ Object
935
936
937
|
# File 'lib/milk_tea/core/types.rb', line 935
def fields
@fields
end
|
#has_events? ⇒ Boolean
951
952
953
|
# File 'lib/milk_tea/core/types.rb', line 951
def has_events?
!@events.empty?
end
|
#hash ⇒ Object
971
972
973
|
# File 'lib/milk_tea/core/types.rb', line 971
def hash
[self.class, name, module_name, external, packed, alignment, linkage_name].hash
end
|
#set_layout(packed:, alignment:) ⇒ Object
929
930
931
932
933
|
# File 'lib/milk_tea/core/types.rb', line 929
def set_layout(packed:, alignment:)
@packed = packed
@alignment = alignment
self
end
|
#to_s ⇒ Object
975
976
977
|
# File 'lib/milk_tea/core/types.rb', line 975
def to_s
module_name ? "#{module_name}.#{name}" : name
end
|