## TestSubject TestSubject — Example of user-supplied structure wrapper |

## Synopsis

                        TestSubject;
    enum                TestSubjectKind;
    TestSubject *       test_subject_new                    (TestSubjectKind kind,
                                                             const gchar *name,
                                                             const gchar *favorite_food,
                                                             const gchar *favorite_color);
    TestSubjectKind     test_subject_get_kind               (TestSubject *subject);
    const gchar *       test_subject_get_name               (TestSubject *subject);
    const gchar *       test_subject_get_favorite_food      (TestSubject *subject);
    const gchar *       test_subject_get_favorite_color     (TestSubject *subject);

## Object Hierarchy

      GObject
       +----EggDBusStructure
             +----TestSubject

## Description

The TestSubject interface is a user-supplied wrapper for accessing and creating EggDBusStructure instances with signature (sa{sv}).

## Details

### TestSubject

    typedef struct _TestSubject TestSubject;

### enum TestSubjectKind

    typedef enum
    {
      TEST_SUBJECT_KIND_UNKNOWN,
      TEST_SUBJECT_KIND_HUMAN,
      TEST_SUBJECT_KIND_CYLON,
      TEST_SUBJECT_KIND_DEITY,
    } TestSubjectKind;

### test_subject_new ()

    TestSubject *       test_subject_new                    (TestSubjectKind kind,
                                                             const gchar *name,
                                                             const gchar *favorite_food,
                                                             const gchar *favorite_color);

Constructs a new TestSubject.

`kind` : | A TestSubjectKind.
`name` : | Name of subject.
`favorite_food` : | The favorite food of the subject.
`favorite_color` : | The favorite color of the subject.
Returns : | A TestSubject.

### test_subject_get_kind ()

    TestSubjectKind     test_subject_get_kind               (TestSubject *subject);

Gets the kind of `subject`.

`subject` : | A TestSubject.
Returns : | A TestSubjectKind.

### test_subject_get_name ()

    const gchar *       test_subject_get_name               (TestSubject *subject);

Gets name of `subject`.

`subject` : | A TestSubject.
Returns : | Name of `subject`.

### test_subject_get_favorite_food ()

    const gchar *       test_subject_get_favorite_food      (TestSubject *subject);

Gets favorite food of `subject`.

`subject` : | A TestSubject.
Returns : | Favorite food of `subject`.

### test_subject_get_favorite_color ()

    const gchar *       test_subject_get_favorite_color     (TestSubject *subject);

Gets favorite color of `subject`.

`subject` : | A TestSubject.
Returns : | Favorite color of `subject`.