Por que não consigo armazenar um valor e uma referência a esse valor na mesma estrutura?

Eu tenho um valor e quero armazenar esse valor e uma referência a algo dentro desse valor no meu próprio 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)
}

Às vezes, tenho um valor e quero armazenar esse valor e uma referência a esse valor na mesma estrutura:

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

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

    Combined(thing, &thing)
}

Às vezes, nem estou fazendo uma referência ao valor e recebo o mesmo erro:

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

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

    Combined(parent, child)
}

Em cada um desses casos, recebo um erro de que um dos valores "não vive o suficiente". O que esse erro significa?

questionAnswers(2)

yourAnswerToTheQuestion