32 lines
983 B
Rust
32 lines
983 B
Rust
#![allow(dead_code)]
|
|
|
|
struct Tableau<'a, MP> {
|
|
provider: &'a MP,
|
|
}
|
|
|
|
impl<'adapted_matrix_provider, 'original_data, MP>
|
|
Tableau<'adapted_matrix_provider, AdaptedMatrixProvider<'original_data, MP>>
|
|
{
|
|
fn provider(&self) -> &'adapted_matrix_provider AdaptedMatrixProvider</*'original_data,*/ MP> {
|
|
self.provider
|
|
}
|
|
}
|
|
|
|
struct AdaptedMatrixProvider<'a, T> {
|
|
original_problem: &'a T,
|
|
}
|
|
|
|
impl<'a, T> AdaptedMatrixProvider<'a, T> {
|
|
fn clone_with_extra_bound(&self) -> Self {
|
|
AdaptedMatrixProvider { original_problem: self.original_problem }
|
|
}
|
|
}
|
|
|
|
fn create_and_solve_subproblems<'data_provider, 'original_data, MP>(
|
|
tableau: Tableau<'data_provider, AdaptedMatrixProvider<'original_data, MP>>,
|
|
) {
|
|
let _: AdaptedMatrixProvider<'original_data, MP> = tableau.provider().clone_with_extra_bound();
|
|
//~^ ERROR: lifetime may not live long enough
|
|
//~| ERROR: `tableau` does not live long enough
|
|
} //~ ERROR `main` function not found in crate
|