1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
# frozen_string_literal: true
require 'benchmark/memory/held_results/serializer'
require 'benchmark/memory/measurement/metric'
module Benchmark
module Memory
class HeldResults
# Serialize metrics for holding between runs.
class MetricSerializer < Serializer
# Convert a JSON hash into a Metric.
#
# @param hash [Hash] A JSON document hash.
#
# @return [Measurement::Metric]
#
def load(hash)
@object = Measurement::Metric.new(
hash['type'],
hash['allocated'],
hash['retained']
)
self
end
# Convert the metric to a Hash.
#
# @return [Hash] The metric as a Hash.
def to_h
{
allocated: object.allocated,
retained: object.retained,
type: object.type
}
end
end
end
end
end
|