Blender V4.5
blender::StringRef Class Reference

#include <BLI_string_ref.hh>

Inherits blender::StringRefBase.

Public Member Functions

#StringRef Inline Methods
constexpr StringRef ()
 
constexpr StringRef (StringRefNull other)
 
constexpr StringRef (const char *str)
 
constexpr StringRef (const char *str, int64_t length)
 
constexpr StringRef (const char *begin, const char *one_after_end)
 
constexpr StringRef (std::string_view view)
 
constexpr StringRef (Span< char > span)
 
 StringRef (const std::string &str)
 
constexpr StringRef drop_prefix (int64_t n) const
 
constexpr StringRef drop_known_prefix (StringRef prefix) const
 
constexpr StringRef drop_suffix (int64_t n) const
 
constexpr StringRef drop_known_suffix (StringRef suffix) const
 
constexpr char operator[] (int64_t index) const
 
- Public Member Functions inherited from blender::StringRefBase
void copy_utf8_truncated (char *dst, int64_t dst_size) const
 
void copy_bytes_truncated (char *dst, int64_t dst_size) const
 
constexpr int64_t size () const
 
constexpr bool is_empty () const
 
constexpr const char * data () const
 
constexpr operator Span< char > () const
 
 operator std::string () const
 
constexpr operator std::string_view () const
 
constexpr const char * begin () const
 
constexpr const char * end () const
 
constexpr IndexRange index_range () const
 
template<size_t N>
void copy_utf8_truncated (char(&dst)[N]) const
 
template<size_t N>
void copy_bytes_truncated (char(&dst)[N]) const
 
void copy_unsafe (char *dst) const
 
constexpr bool startswith (StringRef prefix) const
 
constexpr bool endswith (StringRef suffix) const
 
constexpr StringRef substr (int64_t start, int64_t size) const
 
constexpr const char & front () const
 
constexpr const char & back () const
 
constexpr int64_t find (char c, int64_t pos=0) const
 
constexpr int64_t find (StringRef str, int64_t pos=0) const
 
constexpr int64_t rfind (char c, int64_t pos=INT64_MAX) const
 
constexpr int64_t rfind (StringRef str, int64_t pos=INT64_MAX) const
 
constexpr int64_t find_first_of (StringRef chars, int64_t pos=0) const
 
constexpr int64_t find_first_of (char c, int64_t pos=0) const
 
constexpr int64_t find_last_of (StringRef chars, int64_t pos=INT64_MAX) const
 
constexpr int64_t find_last_of (char c, int64_t pos=INT64_MAX) const
 
constexpr int64_t find_first_not_of (StringRef chars, int64_t pos=0) const
 
constexpr int64_t find_first_not_of (char c, int64_t pos=0) const
 
constexpr int64_t find_last_not_of (StringRef chars, int64_t pos=INT64_MAX) const
 
constexpr int64_t find_last_not_of (char c, int64_t pos=INT64_MAX) const
 
constexpr StringRef trim () const
 
constexpr StringRef trim (StringRef characters_to_remove) const
 
constexpr StringRef trim (char character_to_remove) const
 

Additional Inherited Members

- Static Public Attributes inherited from blender::StringRefBase
static constexpr int64_t not_found = -1
 
- Protected Member Functions inherited from blender::StringRefBase
constexpr StringRefBase (const char *data, int64_t size)
 
- Protected Attributes inherited from blender::StringRefBase
const char * data_
 
int64_t size_
 

Detailed Description

References a const char array. It might not be null terminated.

StringRef can be compared with StringRef and StringRefNull.

Examples
/usr/src/RPM/BUILD/blender-4.5.8/source/blender/blenkernel/BKE_grease_pencil.hh.

Definition at line 150 of file BLI_string_ref.hh.

Constructor & Destructor Documentation

◆ StringRef() [1/8]

blender::StringRef::StringRef ( )
constexpr

Definition at line 494 of file BLI_string_ref.hh.

Referenced by drop_prefix(), and drop_suffix().

◆ StringRef() [2/8]

blender::StringRef::StringRef ( StringRefNull other)
constexpr

StringRefNull can be converted into StringRef, but not the other way around.

Definition at line 499 of file BLI_string_ref.hh.

◆ StringRef() [3/8]

blender::StringRef::StringRef ( const char * str)
constexpr

Create a StringRef from a null-terminated c-string.

Definition at line 504 of file BLI_string_ref.hh.

◆ StringRef() [4/8]

blender::StringRef::StringRef ( const char * str,
int64_t length )
constexpr

Definition at line 509 of file BLI_string_ref.hh.

◆ StringRef() [5/8]

blender::StringRef::StringRef ( const char * begin,
const char * one_after_end )
constexpr

Create a StringRef from a start and end pointer. This invokes undefined behavior when the second point points to a smaller address than the first one.

Definition at line 570 of file BLI_string_ref.hh.

References blender::StringRefBase::begin(), and BLI_assert.

◆ StringRef() [6/8]

blender::StringRef::StringRef ( std::string_view view)
constexpr

Definition at line 585 of file BLI_string_ref.hh.

◆ StringRef() [7/8]

blender::StringRef::StringRef ( Span< char > span)
constexpr

Definition at line 590 of file BLI_string_ref.hh.

◆ StringRef() [8/8]

blender::StringRef::StringRef ( const std::string & str)
inline

Reference a std::string. Remember that when the std::string is destructed, the StringRef will point to uninitialized memory.

Definition at line 580 of file BLI_string_ref.hh.

Member Function Documentation

◆ drop_known_prefix()

StringRef blender::StringRef::drop_known_prefix ( StringRef prefix) const
constexpr

Return a new StringRef with the given prefix being skipped. This invokes undefined behavior if the string does not begin with the given prefix.

Definition at line 529 of file BLI_string_ref.hh.

References BLI_assert, drop_prefix(), blender::StringRefBase::size(), and blender::StringRefBase::startswith().

Referenced by blender::tests::TEST(), ui_but_event_property_operator_string(), version_bonecollection_anim(), and version_node_socket_id_delim().

◆ drop_known_suffix()

StringRef blender::StringRef::drop_known_suffix ( StringRef suffix) const
constexpr

Return a new StringRef with the given suffix being skipped. This invokes undefined behavior if the string does not begin with the given suffix.

Definition at line 550 of file BLI_string_ref.hh.

References BLI_assert, drop_suffix(), blender::StringRefBase::endswith(), and blender::StringRefBase::size().

Referenced by exr_channels_in_multi_part_file().

◆ drop_prefix()

◆ drop_suffix()

StringRef blender::StringRef::drop_suffix ( int64_t n) const
constexpr

Return a new StringRef that does not contain the last n chars. This invokes undefined behavior when n is negative.

Definition at line 539 of file BLI_string_ref.hh.

References BLI_assert, blender::StringRefBase::data_, blender::StringRefBase::size_, and StringRef().

Referenced by drop_known_suffix(), blender::nodes::node_fn_format_string_cc::preprocess_python_compatible_syntax(), blender::tests::TEST(), and blender::tests::TEST().

◆ operator[]()

char blender::StringRef::operator[] ( int64_t index) const
constexpr

Get the char at the given index.

Definition at line 559 of file BLI_string_ref.hh.

References BLI_assert, blender::StringRefBase::data_, and blender::StringRefBase::size_.


The documentation for this class was generated from the following file: