/* StringThing.h */

#ifndef Included_StringThing_h
#define Included_StringThing_h

/* StringThing module depends on */
/* MiscInfo.h */
/* Audit */
/* Debug */
/* Definitions */
/* Memory */

struct StringThingRec;
typedef struct StringThingRec StringThingRec;

/* create a new string thing. */
StringThingRec*			NewStringThing(void);

/* dispose of a string thing */
void								DisposeStringThing(StringThingRec* StringThing);

/* add some data onto the end of the string thing */
MyBoolean						AppendStringThing(StringThingRec* StringThing,
											char* Data, long Length);

/* look up a byte in the string thing */
char								LookupInStringThing(StringThingRec* StringThing, long Index);

/* find out how long the string thing is */
long								GetStringThingLength(StringThingRec* StringThing);

/* delete a block of data from the string thing */
void								StringThingDeleteStuff(StringThingRec* StringThing,
											long StartIndex, long NumBytes);

/* return the index of a character in the buffer or -1 if it's not found */
long								StringThingSearchForChar(StringThingRec* StringThing, char Thing);

/* get a subrange of the string thing */
char*								StringThingGetSubrange(StringThingRec* StringThing,
											long StartIndex, long NumBytes);

#endif
