Sha256: e5a59472109844701950e0f8ab21d7facbee6757539985f2b0f7216fa1845e6d

Contents?: true

Size: 560 Bytes

Versions: 7

Compression:

Stored size: 560 Bytes

Contents

module SFRP
  module Mono
    class Memory
      def self.empty
        Memory.new
      end

      def self.one(type_str)
        Memory.new(type_str => 1)
      end

      def initialize(hash = {})
        @hash = hash
      end

      def and(other)
        Memory.new(@hash.merge(other.hash) { |_, v1, v2| v1 + v2 })
      end

      def or(other)
        Memory.new(@hash.merge(other.hash) { |_, v1, v2| [v1, v2].max })
      end

      def count(type_str)
        @hash[type_str] || 0
      end

      protected
      attr_reader :hash
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sfrp-1.5.2 lib/sfrp/mono/memory.rb
sfrp-1.5.1 lib/sfrp/mono/memory.rb
sfrp-1.5.0 lib/sfrp/mono/memory.rb
sfrp-1.4.0 lib/sfrp/mono/memory.rb
sfrp-1.2.1 lib/sfrp/mono/memory.rb
sfrp-1.2.0 lib/sfrp/mono/memory.rb
sfrp-1.1.0 lib/sfrp/mono/memory.rb