# Class PointAndCargo
Simple record class storing a point (one-value) interval and cargo.

Defined in | <seqan/misc/interval_tree.h>
Signature | `template <[typename TValue[, typename TCargo]]> class PointAndCargo;`

## Template Parameters

`TValue` | The value type.
`TCargo` | The cargo type.

## Member Function Overview

- `PointAndCargo::PointAndCargo();, PointAndCargo::PointAndCargo(point, cargo);`
  Constructor

## Interface Function Overview

- `TCargo cargo(point);`
  Access to the cargo.
- `TCargo getCargo(point);`
  Access to the cargo.
- `TBoundary getLeftBoundary(point);`
  Access to getLeft boundary.
- `TBoundary leftBoundary(point);`
  Access to left boundary.
- `TBoundary rightBoundary(point);`
  Access to right boundary.

## Interface Metafunction Overview

- `Cargo<TPointAndCargo>::Type;`
  Return the cargo type.
- `Value<TPointAndCargo>::Type;`
  Return the value type.

## Member Variable Overview

- `TCargo PointAndCargo::cargo`
  The cargo to store.
- `TValue PointAndCargo::point`
  The point to store.

## Member Functions Detail

### `PointAndCargo::PointAndCargo(); PointAndCargo::PointAndCargo(point, cargo);`

Constructor

#### Parameters

`point` | The point to store.
`cargo` | The cargo to store.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

## Interface Functions Detail

### `TCargo cargo(point);`

Access to the cargo.

#### Parameters

`point` | The PointAndCargo to query for its cargo.

#### Returns

`TCargo` | Reference to the cargo member.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TCargo getCargo(point);`

Access to the cargo.

#### Parameters

`point` | The PointAndCargo to query for its cargo.

#### Returns

`TCargo` | Copy of the cargo member.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TBoundary getLeftBoundary(point);`

Access to getLeft boundary.

#### Parameters

`point` | The PointAndCargo to query for its left boundary.

#### Returns

`TBoundary` | Copy of the left boundary value.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TBoundary leftBoundary(point);`

Access to left boundary.

#### Parameters

`point` | The PointAndCargo to query for its left boundary.

#### Returns

`TBoundary` | Reference to the left boundary value.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

### `TBoundary rightBoundary(point);`

Access to right boundary.

#### Parameters

`point` | The PointAndCargo to query for its right boundary.

#### Returns

`TBoundary` | Reference to the right boundary value.

#### Data Races

If not stated otherwise, concurrent invocation is not guaranteed to be thread-safe.

## Interface Metafunctions Detail

### `Cargo<TPointAndCargo>::Type;`

Return the cargo type.

### `Value<TPointAndCargo>::Type;`

Return the value type.

## Member Variables Detail

### `TCargo PointAndCargo::cargo`

The cargo to store.

### `TValue PointAndCargo::point`

The point to store.

#### Dox Sources

    /*!
     * @class PointAndCargo
     *
     * @headerfile <seqan/misc/interval_tree.h>
     *
     * @brief Simple record class storing a point (one-value) interval and cargo.
     *
     * @signature template <[typename TValue[, typename TCargo]]> class
     *            PointAndCargo;
     *
     * @tparam TValue The value type.
     * @tparam TCargo The cargo type.
     *
     * @mfn PointAndCargo#Value
     *
     * @brief Return the value type.
     *
     * @signature Value<TPointAndCargo>::Type;
     *
     * @mfn PointAndCargo#Cargo
     *
     * @brief Return the cargo type.
     *
     * @signature Cargo<TPointAndCargo>::Type;
     *
     * @fn PointAndCargo::PointAndCargo
     *
     * @brief Constructor
     *
     * @signature PointAndCargo::PointAndCargo();
     * @signature PointAndCargo::PointAndCargo(point, cargo);
     *
     * @param[in] point The point to store.
     * @param[in] cargo The cargo to store.
     *
     * @var TValue PointAndCargo::point;
     *
     * @brief The point to store.
     *
     * @var TCargo PointAndCargo::cargo;
     *
     * @brief The cargo to store.
     *
     * @fn PointAndCargo#leftBoundary
     *
     * @brief Access to left boundary.
     *
     * @signature TBoundary leftBoundary(point);
     *
     * @param[in] point The PointAndCargo to query for its left boundary.
     *
     * @return TBoundary Reference to the left boundary value.
     *
     * @fn PointAndCargo#rightBoundary
     *
     * @brief Access to right boundary.
     *
     * @signature TBoundary rightBoundary(point);
     *
     * @param[in] point The PointAndCargo to query for its right boundary.
     *
     * @return TBoundary Reference to the right boundary value.
     *
     * @fn PointAndCargo#getLeftBoundary
     *
     * @brief Access to getLeft boundary.
     *
     * @signature TBoundary getLeftBoundary(point);
     *
     * @param[in] point The PointAndCargo to query for its left boundary.
     *
     * @return TBoundary Copy of the left boundary value.
     *
     * @fn PointAndCargo#cargo
     *
     * @brief Access to the cargo.
     *
     * @signature TCargo cargo(point);
     *
     * @param[in] point The PointAndCargo to query for its cargo.
     *
     * @return TCargo Reference to the cargo member.
     *
     * @fn PointAndCargo#getCargo
     *
     * @brief Access to the cargo.
     *
     * @signature TCargo getCargo(point);
     *
     * @param[in] point The PointAndCargo to query for its cargo.
     *
     * @return TCargo Copy of the cargo member.
     */