summaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
authorTyge Lovset <[email protected]>2023-08-17 05:34:38 +0200
committerTyge Lovset <[email protected]>2023-08-17 05:34:38 +0200
commitbe0e64a9a19d3ca459284c61c497d141a78df1d7 (patch)
treee2005e0a29d9e7386647ad9d92411635d01574c6 /docs
parent2ba238e66efec7b6d895425c4f1160b3b72d242b (diff)
downloadSTC-modified-be0e64a9a19d3ca459284c61c497d141a78df1d7.tar.gz
STC-modified-be0e64a9a19d3ca459284c61c497d141a78df1d7.zip
Renamed "internal" csview member .str => .buf, as it is not null terminated like crawstr .str member.
Diffstat (limited to 'docs')
-rw-r--r--docs/crawstr_api.md32
-rw-r--r--docs/csview_api.md20
2 files changed, 12 insertions, 40 deletions
diff --git a/docs/crawstr_api.md b/docs/crawstr_api.md
index 59087d06..97804e23 100644
--- a/docs/crawstr_api.md
+++ b/docs/crawstr_api.md
@@ -15,8 +15,6 @@ storage. It keeps the length of the string, i.e. no need to call *strlen()* for
All crawstr definitions and prototypes are available by including a single header file.
```c
-#define i_implement
-#include <stc/cstr.h>
#include <stc/crawstr.h>
```
## Methods
@@ -29,7 +27,6 @@ intptr_t crawstr_size(crawstr rs);
bool crawstr_empty(crawstr rs); // check if size == 0
void crawstr_clear(crawstr* self);
csview crawstr_sv(crawstr rs); // convert to csview type
-const char* crawstr_str(crawstr rs); // get null-terminated const char*
bool crawstr_equals(crawstr rs, const char* str);
intptr_t crawstr_find(crawstr rs, const char* str);
@@ -72,8 +69,8 @@ uint32_t utf8_peek_off(const char* s, int offset); // codep
| Type name | Type definition | Used to represent... |
|:----------------|:-------------------------------------------|:-------------------------|
-| `crawstr` | `struct { const char *str; intptr_t size; }` | The string view type |
-| `crawstr_value` | `char` | The string element type |
+| `crawstr` | `struct { const char *str; intptr_t size; }` | Raw string view type |
+| `crawstr_value` | `char` | Raw string element type |
| `crawstr_iter` | `struct { crawstr_value *ref; }` | UTF8 iterator |
## Example: UTF8 iteration and case conversion
@@ -93,7 +90,6 @@ int main(void)
cstr str = cstr_toupper_sv(crawstr_sv(rs));
printf("%s\n", cstr_str(&str));
-
cstr_drop(&str);
}
```
@@ -103,27 +99,3 @@ Liberté, égalité, fraternité.
L i b e r t é , é g a l i t é , f r a t e r n i t é .
LIBERTÉ, ÉGALITÉ, FRATERNITÉ.
```
-
-### Example 2: UTF8 replace
-```c
-#define i_import // include dependent utf8 definitions.
-#include <stc/cstr.h>
-
-int main(void)
-{
- cstr s1 = cstr_lit("hell😀 w😀rld");
-
- cstr_u8_replace_at(&s1, cstr_find(&s1, "😀rld"), 1, c_rs("ø"));
- printf("%s\n", cstr_str(&s1));
-
- c_foreach (i, cstr, s1)
- printf("%.*s,", c_SV(i.u8.chr)); // u8.chr is a csview
-
- cstr_drop(&s1);
-}
-```
-Output:
-```
-hell😀 wørld
-h,e,l,l,😀, ,w,ø,r,l,d,
-```
diff --git a/docs/csview_api.md b/docs/csview_api.md
index eafc6854..5202d6f5 100644
--- a/docs/csview_api.md
+++ b/docs/csview_api.md
@@ -1,14 +1,14 @@
# STC [csview](../include/stc/csview.h): Sub-string View
![String](pics/string.jpg)
-The type **csview** is a non-null terminated string view and can refer to a constant contiguous sequence of
-char-elements with the first element of the sequence at position zero. The implementation holds two members:
-a pointer to constant char and a size.
+The type **csview** is a non-null terminated string view and can refer to a constant contiguous
+sequence of char-elements with the first element of the sequence at position zero. The implementation
+holds two members: a pointer to constant char and a size.
-Because **csview** is non-null terminated, it is not an ideal replacent view for `const char*` - see [crawstr](crawstr_api.md)
-for that. **csview** never allocates memory, and therefore need not be destructed. Its lifetime is limited by
-the source string storage. It keeps the length of the string, and does not need to call *strlen()* to acquire
-the length.
+Because **csview** is non-null terminated, it cannot be a replacent view for `const char*` -
+see [crawstr](crawstr_api.md) for that. **csview** never allocates memory, and therefore need not be
+destructed. Its lifetime is limited by the source string storage. It keeps the length of the string,
+and does not need to call *strlen()* to acquire the length.
- **csview** iterators works on UTF8 codepoints - like **cstr** and **crawstr** (see Example 2).
- Because it is null-terminated, it must be printed the following way:
@@ -16,8 +16,8 @@ the length.
printf("%.*s", c_SV(sstr));
```
-See the c++ class [std::basic_string_view](https://en.cppreference.com/w/cpp/string/basic_string_view) for a functional
-description.
+See the c++ class [std::basic_string_view](https://en.cppreference.com/w/cpp/string/basic_string_view)
+for a functional description.
## Header file
@@ -95,7 +95,7 @@ uint64_t csview_hash(const csview* x);
| Type name | Type definition | Used to represent... |
|:----------------|:-------------------------------------------|:-------------------------|
-| `csview` | `struct { const char *str; intptr_t size; }` | The string view type |
+| `csview` | `struct { const char *buf; intptr_t size; }` | The string view type |
| `csview_value` | `char` | The string element type |
| `csview_iter` | `struct { csview_value *ref; }` | UTF8 iterator |