Class: StructTypeDef

Inherits:
TypeDef show all
Defined in:
lib/runtime.rb,
lib/generators/scala_server_generator.rb,
lib/generators/unity_client_generator.rb,
lib/generators/elixir_server_generator.rb

Instance Attribute Summary collapse

Attributes inherited from TypeDef

#name

Attributes inherited from Def

#ast

Instance Method Summary collapse

Constructor Details

#initialize(ast) ⇒ StructTypeDef

Returns a new instance of StructTypeDef.



72
73
74
75
76
# File 'lib/runtime.rb', line 72

def initialize ast
	super ast, ast.name
	@members = []
	@doc = ast.doc
end

Instance Attribute Details

#docObject (readonly)

Returns the value of attribute doc.



70
71
72
# File 'lib/runtime.rb', line 70

def doc
  @doc
end

#membersObject (readonly)

Returns the value of attribute members.



70
71
72
# File 'lib/runtime.rb', line 70

def members
  @members
end

Instance Method Details

#add_member(member_def) ⇒ Object



78
79
80
# File 'lib/runtime.rb', line 78

def add_member member_def
	@members.push member_def
end

#elixir_membersObject



237
238
239
# File 'lib/generators/elixir_server_generator.rb', line 237

def elixir_members
    @members.map { |m| ":" + m.elixir_name } .join ', '
end

#elixir_members_with_types(node) ⇒ Object



241
242
243
# File 'lib/generators/elixir_server_generator.rb', line 241

def elixir_members_with_types node
    @members.map { |m| m.elixir_name + ": " + m.type.elixir_type(node) } .join ', '
end

#elixir_members_with_valuesObject



245
246
247
# File 'lib/generators/elixir_server_generator.rb', line 245

def elixir_members_with_values
    @members.map { |m| m.elixir_name + ": " + m.elixir_name } .join ', '
end

#elixir_read(node) ⇒ Object



253
254
255
# File 'lib/generators/elixir_server_generator.rb', line 253

def elixir_read node
    "#{node.namespace}.#{@name}.read(data)"
end

#elixir_reader(node) ⇒ Object



261
262
263
# File 'lib/generators/elixir_server_generator.rb', line 261

def elixir_reader node
    "&#{node.namespace}.#{@name}.read/1"
end

#elixir_type(node) ⇒ Object



249
250
251
# File 'lib/generators/elixir_server_generator.rb', line 249

def elixir_type node
    "#{node.namespace}.#{@name}.t"
end

#elixir_write(node, member_name) ⇒ Object



257
258
259
# File 'lib/generators/elixir_server_generator.rb', line 257

def elixir_write node, member_name
    "#{node.namespace}.#{@name}.write(data, #{member_name})"
end

#elixir_writer(node) ⇒ Object



265
266
267
# File 'lib/generators/elixir_server_generator.rb', line 265

def elixir_writer node
    "&#{node.namespace}.#{@name}.write/2"
end

#get_member(name) ⇒ Object



82
83
84
# File 'lib/runtime.rb', line 82

def get_member name
	@members.find { |m| m.name == name }
end

#scalaObject



27
28
29
# File 'lib/generators/scala_server_generator.rb', line 27

def scala
	@name
end

#unityObject



43
44
45
# File 'lib/generators/unity_client_generator.rb', line 43

def unity
	@name
end