Sha256: fdecc5a57c925d50fb4ef1eed4ff1986760485b045f2440e095147fcce39ea15

Contents?: true

Size: 608 Bytes

Versions: 3

Compression:

Stored size: 608 Bytes

Contents

module Xdrgen::AST
  module Definitions
    class UnionArm < Base
      extend Memoist
      include Concerns::Contained

      delegate :name, to: :declaration
      delegate :type, to: :declaration

      memoize def union
        find_ancestors(Union).last
      end

      def cases
        cases_n.elements
      end

      def resolved_case(kase)
        union.resolved_case kase
      end

      def resolved_cases
        enum = union.discriminant_type

        cases.map{|kase| resolved_case kase}
      end

      def void?
        declaration.is_a?(Declarations::Void)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xdrgen-0.1.1 lib/xdrgen/ast/definitions/union_arm.rb
xdrgen-0.1.0 lib/xdrgen/ast/definitions/union_arm.rb
xdrgen-0.0.1 lib/xdrgen/ast/definitions/union_arm.rb