# File lib/dm-types/flag.rb, line 31
      def self.load(value, property)
        begin
          matches = []

          return [] if value.nil? || (value <= 0)
          0.upto((Math.log(value) / Math.log(2)).ceil) do |i|
            pow = 2 ** i
            matches << flag_map[pow] if value & pow == pow
          end

          matches.compact
        rescue TypeError, Errno::EDOM
          []
        end
      end