## go-data

go-data

## Synopsis

    #define             GO_DATA_TYPE
    #define             GO_DATA                             (o)
    #define             IS_GO_DATA                          (o)
    GType               go_data_get_type                    (void);
    GOData *            go_data_dup                         (GOData const *src);
    gboolean            go_data_eq                          (GOData const *a,
                                                             GOData const *b);
    GOFormat *          go_data_preferred_fmt               (GOData const *dat);
    char *              go_data_as_str                      (GOData const *dat);
    gboolean            go_data_from_str                    (GOData *dat,
                                                             char const *str);
    void                go_data_emit_changed                (GOData *dat);
    #define             GO_DATA_SCALAR_TYPE
    #define             GO_DATA_SCALAR                      (o)
    #define             IS_GO_DATA_SCALAR                   (o)
    GType               go_data_scalar_get_type             (void);
    double              go_data_scalar_get_value            (GODataScalar *val);
    char const *        go_data_scalar_get_str              (GODataScalar *val);
    #define             GO_DATA_VECTOR_TYPE
    #define             GO_DATA_VECTOR                      (o)
    #define             IS_GO_DATA_VECTOR                   (o)
    GType               go_data_vector_get_type             (void);
    int                 go_data_vector_get_len              (GODataVector *vec);
    double *            go_data_vector_get_values           (GODataVector *vec);
    double              go_data_vector_get_value            (GODataVector *vec,
                                                             unsigned  i);
    char *              go_data_vector_get_str              (GODataVector *vec,
                                                             unsigned  i);
    void                go_data_vector_get_minmax           (GODataVector *vec,
                                                             double *min,
                                                             double *max);
    #define             GO_DATA_MATRIX_TYPE
    #define             GO_DATA_MATRIX                      (o)
    #define             IS_GO_DATA_MATRIX                   (o)
    GType               go_data_matrix_get_type             (void);
    GODataMatrixSize    go_data_matrix_get_size             (GODataMatrix *mat);
    double *            go_data_matrix_get_values           (GODataMatrix *mat);
    double              go_data_matrix_get_value            (GODataMatrix *mat,
                                                             unsigned  i,
                                                             unsigned  j);
    char *              go_data_matrix_get_str              (GODataMatrix *mat,
                                                             unsigned  i,
                                                             unsigned  j);
    void                go_data_matrix_get_minmax           (GODataMatrix *mat,
                                                             double *min,
                                                             double *max);

## Description

## Details

### GO_DATA_TYPE

    #define GO_DATA_TYPE	(go_data_get_type ())

### GO_DATA()

    #define GO_DATA(o)	(G_TYPE_CHECK_INSTANCE_CAST ((o), GO_DATA_TYPE, GOData))

`o` : |

### IS_GO_DATA()

    #define IS_GO_DATA(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GO_DATA_TYPE))

`o` : |

### go_data_get_type ()

    GType               go_data_get_type                    (void);

Returns : |

### go_data_dup ()

    GOData *            go_data_dup                         (GOData const *src);

A deep copy of `src`.

`src` : | GOData
Returns : |

### go_data_eq ()

    gboolean            go_data_eq                          (GOData const *a,
                                                             GOData const *b);

`a` : | GOData
`b` : | GOData
Returns : | TRUE if `a` and `b` are the same

### go_data_preferred_fmt ()

    GOFormat *          go_data_preferred_fmt               (GOData const *dat);

Caller is responsible for unrefing the result.

`dat` : | GOData
Returns : | the fmt preferred by the the data

### go_data_as_str ()

    char *              go_data_as_str                      (GOData const *dat);

Return a string representation of the data source that the caller is responsible for freeing

NOTE : This is the _source_ not the content.

`dat` : | GOData
Returns : |

### go_data_from_str ()

    gboolean            go_data_from_str                    (GOData *dat,
                                                             char const *str);

De-serializes the source information returned from go_data_as_str.

`dat` : | GOData
`str` : |
Returns : | FALSE on error.

### go_data_emit_changed ()

    void                go_data_emit_changed                (GOData *dat);

protected utility to emit a 'changed' signal

`dat` : | GOData

### GO_DATA_SCALAR_TYPE

    #define GO_DATA_SCALAR_TYPE	(go_data_scalar_get_type ())

### GO_DATA_SCALAR()

    #define GO_DATA_SCALAR(o)	(G_TYPE_CHECK_INSTANCE_CAST ((o), GO_DATA_SCALAR_TYPE, GODataScalar))

`o` : |

### IS_GO_DATA_SCALAR()

    #define IS_GO_DATA_SCALAR(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GO_DATA_SCALAR_TYPE))

`o` : |

### go_data_scalar_get_type ()

    GType               go_data_scalar_get_type             (void);

Returns : |

### go_data_scalar_get_value ()

    double              go_data_scalar_get_value            (GODataScalar *val);

`val` : |
Returns : |

### go_data_scalar_get_str ()

    char const *        go_data_scalar_get_str              (GODataScalar *val);

`val` : |
Returns : |

### GO_DATA_VECTOR_TYPE

    #define GO_DATA_VECTOR_TYPE	(go_data_vector_get_type ())

### GO_DATA_VECTOR()

    #define GO_DATA_VECTOR(o)	(G_TYPE_CHECK_INSTANCE_CAST ((o), GO_DATA_VECTOR_TYPE, GODataVector))

`o` : |

### IS_GO_DATA_VECTOR()

    #define IS_GO_DATA_VECTOR(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GO_DATA_VECTOR_TYPE))

`o` : |

### go_data_vector_get_type ()

    GType               go_data_vector_get_type             (void);

Returns : |

### go_data_vector_get_len ()

    int                 go_data_vector_get_len              (GODataVector *vec);

`vec` : |
Returns : |

### go_data_vector_get_values ()

    double *            go_data_vector_get_values           (GODataVector *vec);

`vec` : |
Returns : |

### go_data_vector_get_value ()

    double              go_data_vector_get_value            (GODataVector *vec,
                                                             unsigned  i);

`vec` : |
`i` : |
Returns : |

### go_data_vector_get_str ()

    char *              go_data_vector_get_str              (GODataVector *vec,
                                                             unsigned  i);

`vec` : |
`i` : |
Returns : |

### go_data_vector_get_minmax ()

    void                go_data_vector_get_minmax           (GODataVector *vec,
                                                             double *min,
                                                             double *max);

`vec` : |
`min` : |
`max` : |

### GO_DATA_MATRIX_TYPE

    #define GO_DATA_MATRIX_TYPE	(go_data_matrix_get_type ())

### GO_DATA_MATRIX()

    #define GO_DATA_MATRIX(o)	(G_TYPE_CHECK_INSTANCE_CAST ((o), GO_DATA_MATRIX_TYPE, GODataMatrix))

`o` : |

### IS_GO_DATA_MATRIX()

    #define IS_GO_DATA_MATRIX(o)	(G_TYPE_CHECK_INSTANCE_TYPE ((o), GO_DATA_MATRIX_TYPE))

`o` : |

### go_data_matrix_get_type ()

    GType               go_data_matrix_get_type             (void);

Returns : |

### go_data_matrix_get_size ()

    GODataMatrixSize    go_data_matrix_get_size             (GODataMatrix *mat);

`mat` : |
Returns : |

### go_data_matrix_get_values ()

    double *            go_data_matrix_get_values           (GODataMatrix *mat);

`mat` : |
Returns : |

### go_data_matrix_get_value ()

    double              go_data_matrix_get_value            (GODataMatrix *mat,
                                                             unsigned  i,
                                                             unsigned  j);

`mat` : |
`i` : |
`j` : |
Returns : |

### go_data_matrix_get_str ()

    char *              go_data_matrix_get_str              (GODataMatrix *mat,
                                                             unsigned  i,
                                                             unsigned  j);

`mat` : |
`i` : |
`j` : |
Returns : |

### go_data_matrix_get_minmax ()

    void                go_data_matrix_get_minmax           (GODataMatrix *mat,
                                                             double *min,
                                                             double *max);

`mat` : |
`min` : |
`max` : |