Sha256: 9af10b006631ac988e4f03fbe39e1ba96af866a402644a9bb6da37d5f6866eeb
Contents?: true
Size: 736 Bytes
Versions: 3
Compression:
Stored size: 736 Bytes
Contents
require "forwardable" require "hamster/set" require "hamster/read_copy_update" module Hamster def self.mutable_set(*items) MutableSet.new(set(*items)) end class MutableSet extend Forwardable include ReadCopyUpdate def add(item) transform { |set| set.add(item) } end def_delegator :self, :add, :<< def add?(item) added = false transform do |set| added = !set.include?(item) set.add(item) end added end def delete(item) transform { |set| set.delete(item) } end def delete?(item) deleted = false transform do |set| deleted = set.include?(item) set.delete(item) end deleted end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
hamster-1.0.1.pre.rc3 | lib/hamster/experimental/mutable_set.rb |
hamster-1.0.1.pre.rc2 | lib/hamster/experimental/mutable_set.rb |
hamster-1.0.1.pre.rc.1 | lib/hamster/experimental/mutable_set.rb |