## inf-text-insert-operation inf-text-insert-operation |

## Synopsis

    struct              InfTextInsertOperationIface;
    guint               inf_text_insert_operation_get_position
                                                            (InfTextInsertOperation *operation);
    guint               inf_text_insert_operation_get_length
                                                            (InfTextInsertOperation *operation);
    gboolean            inf_text_insert_operation_need_concurrency_id
                                                            (InfTextInsertOperation *op,
                                                             InfAdoptedOperation *against);
    InfAdoptedConcurrencyId inf_text_insert_operation_get_concurrency_id
                                                            (InfTextInsertOperation *op,
                                                             InfAdoptedOperation *against);
    InfAdoptedOperation * inf_text_insert_operation_transform_insert
                                                            (InfTextInsertOperation *operation,
                                                             InfTextInsertOperation *against,
                                                             InfAdoptedConcurrencyId cid);
    InfAdoptedOperation * inf_text_insert_operation_transform_delete
                                                            (InfTextInsertOperation *operation,
                                                             InfTextDeleteOperation *against,
                                                             InfAdoptedConcurrencyId cid);

## Description

## Details

### struct InfTextInsertOperationIface

    struct InfTextInsertOperationIface {
      GTypeInterface parent;

      /* Virtual table */
      guint(*get_position)(InfTextInsertOperation* operation);

      guint(*get_length)(InfTextInsertOperation* operation);

      InfTextInsertOperation*(*transform_position)(InfTextInsertOperation* op,
                                                   guint position);
    };

### inf_text_insert_operation_get_position ()

    guint               inf_text_insert_operation_get_position
                                                            (InfTextInsertOperation *operation);

Returns the position at which `operation` inserts text.

`operation` : | A InfTextInsertOperation.
Returns : | The position to insert text.

### inf_text_insert_operation_get_length ()

    guint               inf_text_insert_operation_get_length
                                                            (InfTextInsertOperation *operation);

Returns the length of the text inserted by `operation`.

`operation` : | A InfTextInsertOperation.
Returns : | The length of `operation`.

### inf_text_insert_operation_need_concurrency_id ()

    gboolean            inf_text_insert_operation_need_concurrency_id
                                                            (InfTextInsertOperation *op,
                                                             InfAdoptedOperation *against);

Returns whether transforming `op` against `against` requires a concurrency ID (see `inf_adopted_operation_need_concurrency_id()` for further information).

`op` : | A InfTextInsertOperation.
`against` : | Another InfAdoptedOperation.
Returns : | Whether transforming `op` against `against` requires a concurrency ID.

### inf_text_insert_operation_get_concurrency_id ()

    InfAdoptedConcurrencyId inf_text_insert_operation_get_concurrency_id
                                                            (InfTextInsertOperation *op,
                                                             InfAdoptedOperation *against);

Returns a concurrency ID for transformation of `op` against `against` (see `inf_adopted_operation_get_concurrency_id()` for further information).

`op` : | A InfTextInsertOperation.
`against` : | Another InfAdoptedOperation.
Returns : | A concurrency ID between `op` and `against`.

### inf_text_insert_operation_transform_insert ()

    InfAdoptedOperation * inf_text_insert_operation_transform_insert
                                                            (InfTextInsertOperation *operation,
                                                             InfTextInsertOperation *against,
                                                             InfAdoptedConcurrencyId cid);

Returns a new operation that includes the effect of `against` into `operation`.

`operation` : | A InfTextInsertOperation.
`against` : | Another InfTextInsertOperation.
`cid` : | The concurrency ID for the transformation.
Returns : | A new InfAdoptedOperation.

### inf_text_insert_operation_transform_delete ()

    InfAdoptedOperation * inf_text_insert_operation_transform_delete
                                                            (InfTextInsertOperation *operation,
                                                             InfTextDeleteOperation *against,
                                                             InfAdoptedConcurrencyId cid);

Returns a new operation that includes the effect of `against` into `operation`.

`operation` : | A InfTextInsertOperation.
`against` : | A InfTextDeleteOperation.
`cid` : | The concurrency ID for the transformation.
Returns : | A new InfAdoptedOperation.