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)
 
MRC_API MR_std_stringMR_std_string_OffsetMutablePtr (MR_std_string *ptr, ptrdiff_t i)
 
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. The reference to the parameter other might be preserved in this object. When this function is called, this object will drop any object references it had previously.

◆ 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. The reference to the parameter other might be preserved in the constructed object. 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. When this function is called, this object will drop any object references it had previously.

◆ 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. The reference to the parameter ptr might be preserved in the return value.

◆ 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. The reference to the parameter ptr might be preserved in the return value.

◆ 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.