// Generated by moontel span from orders.mbt. Edit those files, not this one.

///|
fn place_traced(
  tracer : @trace.Tracer,
  item : String,
  now~ : () -> Int64,
  parent? : @trace.TraceContext,
) -> Int32 raise {
  let span = tracer.start(
    "orders.place",
    parent?,
    at=now(),
    kind=@trace.Server,
    attributes=[("item", @trace.Str(item))],
  )
  defer span.finish(at=now())
  let run :() -> Int32 raise = () => place(item)
  match (
    try {
      Ok(run())
    } catch{
      e => Err(e)
    }
  ) {
    Ok(value) => value
    Err(e) => {
      span.record_exception(message=e.to_string(), at=now())
      span.set_status(Error(e.to_string()))
      raise  e
    }
  }
}