src/Pure/General/timing.scala
changeset 65613 cfcafe9824d1
parent 65597 b408ca224954
child 65617 823bbc467dfa
equal deleted inserted replaced
65612:f70e918105da 65613:cfcafe9824d1
    40   {
    40   {
    41     import XML.Decode._
    41     import XML.Decode._
    42     val (elapsed, cpu, gc) = triple(Time.decode, Time.decode, Time.decode)(body)
    42     val (elapsed, cpu, gc) = triple(Time.decode, Time.decode, Time.decode)(body)
    43     Timing(elapsed, cpu, gc)
    43     Timing(elapsed, cpu, gc)
    44   }
    44   }
       
    45 
       
    46   def write(t: Timing): Bytes =
       
    47     if (t.is_zero) Bytes.empty
       
    48     else Bytes(YXML.string_of_body(encode(t)))
       
    49 
       
    50   def read(bs: Bytes): Timing =
       
    51     if (bs.isEmpty) zero
       
    52     else decode(YXML.parse_body(bs.text))
    45 }
    53 }
    46 
    54 
    47 sealed case class Timing(elapsed: Time, cpu: Time, gc: Time)
    55 sealed case class Timing(elapsed: Time, cpu: Time, gc: Time)
    48 {
    56 {
    49   def is_zero: Boolean = elapsed.is_zero && cpu.is_zero && gc.is_zero
    57   def is_zero: Boolean = elapsed.is_zero && cpu.is_zero && gc.is_zero