¿Por qué no puedo almacenar un valor y una referencia a ese valor en la misma estructura?

Tengo un valor y quiero almacenar ese valor y una referencia a algo dentro de ese valor en mi propio tipo:

struct Thing {
    count: u32,
}

struct Combined<'a>(Thing, &'a u32);

fn make_combined<'a>() -> Combined<'a> {
    let thing = Thing { count: 42 };

    Combined(thing, &thing.count)
}

A veces, tengo un valor y quiero almacenar ese valor y una referencia a ese valor en la misma estructura:

struct Combined<'a>(Thing, &'a Thing);

fn make_combined<'a>() -> Combined<'a> {
    let thing = Thing::new();

    Combined(thing, &thing)
}

A veces, ni siquiera estoy tomando una referencia del valor y obtengo el mismo error:

struct Combined<'a>(Parent, Child<'a>);

fn make_combined<'a>() -> Combined<'a> {
    let parent = Parent::new();
    let child = parent.child();

    Combined(parent, child)
}

En cada uno de estos casos, recibo un error de que uno de los valores "no vive lo suficiente". ¿Qué significa este error?

Respuestas a la pregunta(2)

Su respuesta a la pregunta