# litert::MutableBufferRef


`#include <litert_buffer_ref.h>`

A writable, non-owning version of `https://developers.google.com/edge/api/litert/c/classlitert/1-1-buffer-ref#classlitert_1_1_buffer_ref`.

## Summary

<br />

Details Template Parameters `ByteT` The byte type of the buffer.

### Inheritance

Inherits from: [litert::BufferRef\< ByteT \>](https://developers.google.com/edge/api/litert/c/classlitert/1-1-buffer-ref)  
Direct Known Subclasses:[litert::OwningBufferRef\< ByteT, Allocator \>](https://developers.google.com/edge/api/litert/c/classlitert/1-1-owning-buffer-ref)

| ### Constructors and Destructors ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a25dd2d45adac8e41279ac13e49d1f5d3()` Constructs a null buffer. ||
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a402bf633d734b097ded4cd6ca8504a8f(ByteT *data, size_t size, size_t offset)` Creates a mutable view from a pre-allocated non-const buffer. ||
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a709f378893c34f4c6c8da908c0ae6171(void *data, size_t size, size_t offset)` ||
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a5207fb6cb8d2698eecae79cf015ae6bf(absl::Span< ByteT > data)` ||
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a977d22af4e4828372ae8e17e8a68af11(absl::Span< const ByteT > data)` ||
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1ac0fe966f39644312c525dd43c8c2490b(const ByteT *, size_t, size_t)` ||
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a11776ec2994b9a77e8fbf3803ab6f344(const void *, size_t, size_t)` ||
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a642bd614337dadd7921f2abbeea60586(const https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref & other)` ||

| ### Public types ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a45f4818aeb230572ca627538f89aa22a` | using `std::tuple< ByteT *const, const size_t, const size_t >` |

| ### Public functions ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a71ead62c5e42b489834cd3982cdffab1()` | `ByteT *` Returns a mutable pointer to the start of the actual data. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a12a0cf93dc34c652ae2ebd5fb7e14f51()` | `TupleT` Returns the buffer info as a tuple. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1aa07f3aa8f48d39a90bde934bab414ba5()` | `absl::Span< ByteT >` Returns a mutable span of the actual data. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1ab064ae10ae1f7a7116ff15a766cdc663()` | `char *` Returns a mutable char pointer to the start of the actual data. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a3a5dd50810a3a75aae35ffae6fb399b6(absl::string_view str, size_t offset)` | `bool` Writes a string into the buffer at a specified offset. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a52b50b12f51153f791ade512c43b8b97(const https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref & other)=default` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref &` |

| ### Protected functions ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-mutable-buffer-ref#classlitert_1_1_mutable_buffer_ref_1a1aede98360575cfbeaedc21ae74b98a2() const override` | `virtual absl::string_view` Returns the debug name of the class. |

## Public types

### TupleT

```
std::tuple< ByteT *const, const size_t, const size_t > TupleT
```

## Public functions

### Data

```
ByteT * Data()
```
Returns a mutable pointer to the start of the actual data.

### Get

```
TupleT Get()
```
Returns the buffer info as a tuple.

### MutableBufferRef

```
 MutableBufferRef()
```
Constructs a null buffer.

### MutableBufferRef

```
 MutableBufferRef(
  ByteT *data,
  size_t size,
  size_t offset
)
```
Creates a mutable view from a pre-allocated non-const buffer.

### MutableBufferRef

```
 MutableBufferRef(
  void *data,
  size_t size,
  size_t offset
)
```

### MutableBufferRef

```
 MutableBufferRef(
  absl::Span< ByteT > data
)
```

### MutableBufferRef

```
 MutableBufferRef(
  absl::Span< const ByteT > data
)=delete
```

### MutableBufferRef

```
 MutableBufferRef(
  const ByteT *,
  size_t,
  size_t
)=delete
```

### MutableBufferRef

```
 MutableBufferRef(
  const void *,
  size_t,
  size_t
)=delete
```

### MutableBufferRef

```
 MutableBufferRef(
  const MutableBufferRef & other
)=default
```

### Span

```
absl::Span< ByteT > Span()
```
Returns a mutable span of the actual data.

### StrData

```
char * StrData()
```
Returns a mutable char pointer to the start of the actual data.

### WriteInto

```
bool WriteInto(
  absl::string_view str,
  size_t offset
)
```
Writes a string into the buffer at a specified offset.

<br />

Details Parameters `str` The string to write. `offset` The offset at which to start writing. **Returns** `true` if the entire string fits and is written, `false` otherwise.

### operator=

```
MutableBufferRef & operator=(
  const MutableBufferRef & other
)=default
```

## Protected functions

### TypeName

```
virtual absl::string_view TypeName() const override
```
Returns the debug name of the class.