+-spec of_ets(beam_stats_ets_table:t(), binary(), erlang:timestamp()) ->
+ [t()].
+of_ets(PerTableStats, <<NodeID/binary>>, Timestamp) ->
+ OfEtsTable = fun (Table) -> of_ets_table(Table, NodeID, Timestamp) end,
+ NestedMsgs = lists:map(OfEtsTable, PerTableStats),
+ lists:append(NestedMsgs).
+
+-spec of_ets_table(beam_stats_ets_table:t(), binary(), erlang:timestamp()) ->
+ [t()].
+of_ets_table(#beam_stats_ets_table
+ { id = ID
+ , name = Name
+ , size = Size
+ , memory = Memory
+ },
+ <<NodeID/binary>>,
+ Timestamp
+) ->
+ IDBin = beam_stats_ets_table:id_to_bin(ID),
+ NameBin = atom_to_binary(Name, latin1),
+ NameAndID = [NameBin, IDBin],
+ [ cons([NodeID, <<"ets_table">>, <<"size">> | NameAndID], Size , Timestamp)
+ , cons([NodeID, <<"ets_table">>, <<"memory">> | NameAndID], Memory, Timestamp)
+ ].
+