%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /var/lib/rbenv/versions/3.0.6/lib64/ruby/gems/3.0.0/gems/rbs-1.4.0/core/
Upload File :
Create Path :
Current File : /var/lib/rbenv/versions/3.0.6/lib64/ruby/gems/3.0.0/gems/rbs-1.4.0/core/struct.rbs

# A [Struct](Struct) is a convenient way to bundle a
# number of attributes together, using accessor methods, without having to
# write an explicit class.
#
# The [Struct](Struct) class generates new subclasses
# that hold a set of members and their values. For each member a reader
# and writer method is created similar to
# [Module\#attr\_accessor](https://ruby-doc.org/core-2.6.3/Module.html#method-i-attr_accessor)
# .
#
# ```ruby
# Customer = Struct.new(:name, :address) do
#   def greeting
#     "Hello #{name}!"
#   end
# end
#
# dave = Customer.new("Dave", "123 Main")
# dave.name     #=> "Dave"
# dave.greeting #=> "Hello Dave!"
# ```
#
# See [::new](Struct#method-c-new) for further
# examples of creating struct subclasses and instances.
#
# In the method descriptions that follow, a "member" parameter refers to a
# struct member which is either a quoted string ( `"name"` ) or a
# [Symbol](https://ruby-doc.org/core-2.6.3/Symbol.html) ( `:name` ).
class Struct[Elem] < Object
  include Enumerable[Elem?]

  type attribute_name = Symbol | String

  def initialize: (attribute_name, *attribute_name, ?keyword_init: boolish) ?{ () -> void } -> void

  def each: () -> ::Enumerator[Elem?, self]
          | () { (Elem? item) -> void } -> self

  def self.members: () -> ::Array[Symbol]
end

Zerion Mini Shell 1.0