#ifndef Py_SLICEOBJECT_H
#define Py_SLICEOBJECT_H
#ifdef __cplusplus
extern "C" {
#endif

/* The unique ellipsis object "..." */

extern DL_IMPORT(PyObject) _Py_EllipsisObject; /* Don't use this directly */

#define Py_Ellipsis (&_Py_EllipsisObject)

/* Slice object interface */

/*

A slice object containing start, stop, and step data members (the
names are from range).  After much talk with Guido, it was decided to
let these be any arbitrary python type. 
*/

typedef struct {
	PyObject_HEAD
	PyObject *start, *stop, *step;
} PySliceObject;

extern DL_IMPORT(PyTypeObject) PySlice_Type;

#define PySlice_Check(op) ((op)->ob_type == &PySlice_Type)

PyObject *PySlice_New Py_PROTO((
	PyObject* start, PyObject* stop, PyObject* step));
int PySlice_GetIndices Py_PROTO((
	PySliceObject *r, int length, int *start, int *stop, int *step));

#ifdef __cplusplus
}
#endif
#endif /* !Py_SLICEOBJECT_H */
