# Edit

> The ten edit operations, as an editor's tools spell them.

Symbols in this group are spelled `otio_edit_…`. An SDK drops that prefix.

## `fill`

`otio_edit_fill` · method

Drops an item into a gap on a track, fitting it as the reference point says.

```c
OtioStatus otio_edit_fill(
    OtioDocument *target,
    OtioNode item,
    OtioNode track,
    OtioRationalTime track_time,
    OtioReferencePoint reference_point,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `track` | `node` | input |
| `track_time` | `OtioRationalTime` | input |
| `reference_point` | `OtioReferencePoint` | input |
| `out_error` | `text` | error |

## `insert`

`otio_edit_insert` · method

Inserts an item at an instant, pushing what follows later.

```c
OtioStatus otio_edit_insert(
    OtioDocument *target,
    OtioNode item,
    OtioNode composition,
    OtioRationalTime time,
    bool remove_transitions,
    OtioNode fill_template,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `composition` | `node` | input |
| `time` | `OtioRationalTime` | input |
| `remove_transitions` | `bool` | input |
| `fill_template` (optional) | `node` | input |
| `out_error` | `text` | error |

## `overwrite`

`otio_edit_overwrite` · method

Lays an item over a span of a composition, replacing what was there.

`fill_template` is the item to fill any gap the edit opens with, or `otio_node_none` for a plain gap.

```c
OtioStatus otio_edit_overwrite(
    OtioDocument *target,
    OtioNode item,
    OtioNode composition,
    OtioTimeRange range,
    bool remove_transitions,
    OtioNode fill_template,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `composition` | `node` | input |
| `range` | `OtioTimeRange` | input |
| `remove_transitions` | `bool` | input |
| `fill_template` (optional) | `node` | input |
| `out_error` | `text` | error |

## `remove`

`otio_edit_remove` · method

Takes whatever sits at an instant out of a composition.

With `fill` set, a gap takes its place; without, what follows moves up.

```c
OtioStatus otio_edit_remove(
    OtioDocument *target,
    OtioNode composition,
    OtioRationalTime time,
    bool fill,
    OtioNode fill_template,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `composition` | `node` | input |
| `time` | `OtioRationalTime` | input |
| `fill` | `bool` | input |
| `fill_template` (optional) | `node` | input |
| `out_error` | `text` | error |

## `ripple`

`otio_edit_ripple` · method

Moves an item's in and out points, sliding everything after it.

```c
OtioStatus otio_edit_ripple(
    OtioDocument *target,
    OtioNode item,
    OtioRationalTime delta_in,
    OtioRationalTime delta_out,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `delta_in` | `OtioRationalTime` | input |
| `delta_out` | `OtioRationalTime` | input |
| `out_error` | `text` | error |

## `roll`

`otio_edit_roll` · method

Moves the cut between an item and its neighbour.

```c
OtioStatus otio_edit_roll(
    OtioDocument *target,
    OtioNode item,
    OtioRationalTime delta_in,
    OtioRationalTime delta_out,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `delta_in` | `OtioRationalTime` | input |
| `delta_out` | `OtioRationalTime` | input |
| `out_error` | `text` | error |

## `slice`

`otio_edit_slice` · method

Cuts whatever sits at an instant into two.

```c
OtioStatus otio_edit_slice(
    OtioDocument *target,
    OtioNode composition,
    OtioRationalTime time,
    bool remove_transitions,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `composition` | `node` | input |
| `time` | `OtioRationalTime` | input |
| `remove_transitions` | `bool` | input |
| `out_error` | `text` | error |

## `slide`

`otio_edit_slide` · method

Moves an item along its track, taking the time from its neighbours.

```c
OtioStatus otio_edit_slide(
    OtioDocument *target,
    OtioNode item,
    OtioRationalTime delta,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `delta` | `OtioRationalTime` | input |
| `out_error` | `text` | error |

## `slip`

`otio_edit_slip` · method

Moves the media inside an item without moving the item.

```c
OtioStatus otio_edit_slip(
    OtioDocument *target,
    OtioNode item,
    OtioRationalTime delta,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `delta` | `OtioRationalTime` | input |
| `out_error` | `text` | error |

## `trim`

`otio_edit_trim` · method

Moves an item's in and out points without moving its neighbours.

```c
OtioStatus otio_edit_trim(
    OtioDocument *target,
    OtioNode item,
    OtioRationalTime delta_in,
    OtioRationalTime delta_out,
    OtioNode fill_template,
    OtioBuffer *out_error);
```

| Parameter | Type | Role |
| --- | --- | --- |
| `target` | `document` | document mut |
| `item` | `node` | input |
| `delta_in` | `OtioRationalTime` | input |
| `delta_out` | `OtioRationalTime` | input |
| `fill_template` (optional) | `node` | input |
| `out_error` | `text` | error |

---

Page: https://otio-rust-docs.vercel.app/reference/edit/
