MeshLib C Docs
Loading...
Searching...
No Matches
std_string.h File Reference
#include <MRCMisc/common.h>
#include <MRCMisc/exports.h>
#include <stddef.h>

Go to the source code of this file.

Typedefs

typedef struct MR_std_string MR_std_string
 

Functions

MRC_API MR_std_stringMR_std_string_DefaultConstruct (void)
 
MRC_API MR_std_stringMR_std_string_DefaultConstructArray (size_t num_elems)
 
MRC_API MR_std_stringMR_std_string_ConstructFromAnother (MR_PassBy other_pass_by, MR_std_string *other)
 
MRC_API MR_std_stringMR_std_string_ConstructFrom (const char *other, const char *other_end)
 
MRC_API void MR_std_string_AssignFromAnother (MR_std_string *_this, MR_PassBy other_pass_by, MR_std_string *other)
 
MRC_API void MR_std_string_AssignFrom (MR_std_string *_this, const char *other, const char *other_end)
 
MRC_API void MR_std_string_Destroy (const MR_std_string *_this)
 Destroys a heap-allocated instance of MR_std_string. Does nothing if the pointer is null.
 
MRC_API void MR_std_string_DestroyArray (const MR_std_string *_this)
 Destroys a heap-allocated array of MR_std_string. Does nothing if the pointer is null.
 
MRC_API const MR_std_stringMR_std_string_OffsetPtr (const MR_std_string *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API MR_std_stringMR_std_string_OffsetMutablePtr (MR_std_string *ptr, ptrdiff_t i)
 Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.
 
MRC_API size_t MR_std_string_Size (const MR_std_string *_this)
 
MRC_API const char * MR_std_string_Data (const MR_std_string *_this)
 
MRC_API const char * MR_std_string_MutableData (MR_std_string *_this)
 
MRC_API const char * MR_std_string_DataEnd (const MR_std_string *_this)
 
MRC_API char * MR_std_string_MutableDataEnd (MR_std_string *_this)
 

Typedef Documentation

◆ MR_std_string

typedef struct MR_std_string MR_std_string

A heap-allocated null-terminated string. Supported MR_PassBy modes: MR_PassBy_DefaultConstruct, MR_PassBy_Copy, MR_PassBy_Move, (and MR_PassBy_DefaultArgument and MR_PassBy_NoObject if supported by the callee).

Function Documentation

◆ MR_std_string_AssignFrom()

MRC_API void MR_std_string_AssignFrom ( MR_std_string * _this,
const char * other,
const char * other_end )

Assigns the contents. Parameter _this can not be null. It is a single object. Parameter other can not be null. If other_end is null, then other is assumed to be null-terminated.

◆ MR_std_string_AssignFromAnother()

MRC_API void MR_std_string_AssignFromAnother ( MR_std_string * _this,
MR_PassBy other_pass_by,
MR_std_string * other )

Assigns the contents from another instance. Both objects remain alive after the call. Parameter _this can not be null. It is a single object.

◆ MR_std_string_ConstructFrom()

MRC_API MR_std_string * MR_std_string_ConstructFrom ( const char * other,
const char * other_end )

Constructs a new instance. Parameter other can not be null. If other_end is null, then other is assumed to be null-terminated. Never returns null. Returns an instance allocated on the heap! Must call MR_std_string_Destroy() to free it when you're done using it.

◆ MR_std_string_ConstructFromAnother()

MRC_API MR_std_string * MR_std_string_ConstructFromAnother ( MR_PassBy other_pass_by,
MR_std_string * other )

Constructs a copy of another instance. The source remains alive. Never returns null. Returns an instance allocated on the heap! Must call MR_std_string_Destroy() to free it when you're done using it.

◆ MR_std_string_Data()

MRC_API const char * MR_std_string_Data ( const MR_std_string * _this)

Returns the string contents, which are always null-terminated. Parameter _this can not be null. It is a single object.

◆ MR_std_string_DataEnd()

MRC_API const char * MR_std_string_DataEnd ( const MR_std_string * _this)

Returns a pointer to the end of string, to its null-terminator. Parameter _this can not be null. It is a single object.

◆ MR_std_string_DefaultConstruct()

MRC_API MR_std_string * MR_std_string_DefaultConstruct ( void )

Constructs an empty (default-constructed) instance. Never returns null. Returns an instance allocated on the heap! Must call MR_std_string_Destroy() to free it when you're done using it.

◆ MR_std_string_DefaultConstructArray()

MRC_API MR_std_string * MR_std_string_DefaultConstructArray ( size_t num_elems)

Constructs an array of empty (default-constructed) instances, of the specified size. Will never return null. The array must be destroyed using MR_std_string_DestroyArray(). Use MR_std_string_OffsetMutablePtr() and MR_std_string_OffsetPtr() to access the array elements.

◆ MR_std_string_Destroy()

MRC_API void MR_std_string_Destroy ( const MR_std_string * _this)

Destroys a heap-allocated instance of MR_std_string. Does nothing if the pointer is null.

◆ MR_std_string_DestroyArray()

MRC_API void MR_std_string_DestroyArray ( const MR_std_string * _this)

Destroys a heap-allocated array of MR_std_string. Does nothing if the pointer is null.

◆ MR_std_string_MutableData()

MRC_API const char * MR_std_string_MutableData ( MR_std_string * _this)

Returns the string contents, which are always null-terminated. This version returns a non-const pointer. Parameter _this can not be null. It is a single object.

◆ MR_std_string_MutableDataEnd()

MRC_API char * MR_std_string_MutableDataEnd ( MR_std_string * _this)

Returns a pointer to the end of string, to its null-terminator. This version returns a non-const pointer. Parameter _this can not be null. It is a single object.

◆ MR_std_string_OffsetMutablePtr()

MRC_API MR_std_string * MR_std_string_OffsetMutablePtr ( MR_std_string * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_std_string_OffsetPtr()

MRC_API const MR_std_string * MR_std_string_OffsetPtr ( const MR_std_string * ptr,
ptrdiff_t i )

Offsets a pointer to an array element by i positions (not bytes). Use only if you're certain that the pointer points to an array element.

◆ MR_std_string_Size()

MRC_API size_t MR_std_string_Size ( const MR_std_string * _this)

The number of characters in the string, excluding the null-terminator. Parameter _this can not be null. It is a single object.