docs: def spkuds(descr):
      """
      Unpack the contents of an SPK segment descriptor.
  
      http://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/spkuds_c.html
  
      :param descr: An SPK segment descriptor.
      :type descr: 5-Element Array of floats
      :return:
              The NAIF ID code for the body of the segment,
              The center of motion for body,
              The ID code for the frame of this segment,
              The type of SPK segment,
              The first epoch for which the segment is valid,
              The last  epoch for which the segment is valid,
              Beginning DAF address of the segment,
              Ending DAF address of the segment.
      :rtype: tuple
      """
      assert len(descr) is 5
      descr = stypes.toDoubleVector(descr)
      body = ctypes.c_int()
      center = ctypes.c_int()
      framenum = ctypes.c_int()
      typenum = ctypes.c_int()
      first = ctypes.c_double()
      last = ctypes.c_double()
      begin = ctypes.c_int()
      end = ctypes.c_int()
      libspice.spkuds_c(descr, ctypes.byref(body), ctypes.byref(center),
                        ctypes.byref(framenum), ctypes.byref(typenum),
                        ctypes.byref(first), ctypes.byref(last),
                        ctypes.byref(begin), ctypes.byref(end))
      return body.value, center.value, framenum.value, typenum.value, \
             first.value, last.value, begin.value, end.value