├── .github ├── FUNDING.yml └── workflows │ └── docs.yml ├── .gitignore ├── LICENSE ├── README.md ├── additional ├── ferris.css └── ferris.js ├── book.toml ├── code ├── ch01-01-building-an-intuition │ ├── cell-counterexample │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── cell-example │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── cell-lengthener │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── cell-shortener │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── fn-ptr-lengthener │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ ├── lifetime-lengthener │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ └── lifetime-shortener │ │ ├── Cargo.toml │ │ └── src │ │ └── main.rs ├── ch01-02-formalizing-variance │ ├── outlives-example │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ └── quick-exercise │ │ ├── Cargo.toml │ │ └── src │ │ └── main.rs ├── ch01-03-conflicts-and-type-parameters │ ├── lifetime-check │ │ ├── Cargo.toml │ │ └── src │ │ │ └── main.rs │ └── two-spots │ │ ├── Cargo.toml │ │ └── src │ │ └── main.rs └── ch01-04-variance-in-practice │ ├── message-displayer-and-collector │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── overview │ ├── Cargo.toml │ └── src │ │ └── main.rs │ ├── simple-message-collector │ ├── Cargo.toml │ └── src │ │ └── main.rs │ └── simple-message-displayer │ ├── Cargo.toml │ └── src │ └── main.rs ├── src ├── SUMMARY.md ├── ch01-01-building-an-intuition.md ├── ch01-02-formalizing-variance.md ├── ch01-03-conflicts-and-type-parameters.md ├── ch01-04-variance-in-practice.md ├── ch01-05-epilogue.md ├── ch02-00-acknowledgements.md └── img │ └── does_not_compile.svg └── theme └── head.hbs /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: sunshowers 2 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/.github/workflows/docs.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | target/ 2 | Cargo.lock 3 | book/ 4 | /index.html 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/README.md -------------------------------------------------------------------------------- /additional/ferris.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/additional/ferris.css -------------------------------------------------------------------------------- /additional/ferris.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/additional/ferris.js -------------------------------------------------------------------------------- /book.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/book.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-counterexample/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-counterexample/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-counterexample/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-counterexample/src/main.rs -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-example/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-example/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-example/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-example/src/main.rs -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-lengthener/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-lengthener/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-lengthener/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-lengthener/src/main.rs -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-shortener/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-shortener/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/cell-shortener/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/cell-shortener/src/main.rs -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/fn-ptr-lengthener/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/fn-ptr-lengthener/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/fn-ptr-lengthener/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/fn-ptr-lengthener/src/main.rs -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/lifetime-lengthener/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/lifetime-lengthener/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/lifetime-lengthener/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/lifetime-lengthener/src/main.rs -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/lifetime-shortener/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/lifetime-shortener/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-01-building-an-intuition/lifetime-shortener/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-01-building-an-intuition/lifetime-shortener/src/main.rs -------------------------------------------------------------------------------- /code/ch01-02-formalizing-variance/outlives-example/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-02-formalizing-variance/outlives-example/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-02-formalizing-variance/outlives-example/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-02-formalizing-variance/outlives-example/src/main.rs -------------------------------------------------------------------------------- /code/ch01-02-formalizing-variance/quick-exercise/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-02-formalizing-variance/quick-exercise/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-02-formalizing-variance/quick-exercise/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-02-formalizing-variance/quick-exercise/src/main.rs -------------------------------------------------------------------------------- /code/ch01-03-conflicts-and-type-parameters/lifetime-check/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-03-conflicts-and-type-parameters/lifetime-check/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-03-conflicts-and-type-parameters/lifetime-check/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-03-conflicts-and-type-parameters/lifetime-check/src/main.rs -------------------------------------------------------------------------------- /code/ch01-03-conflicts-and-type-parameters/two-spots/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-03-conflicts-and-type-parameters/two-spots/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-03-conflicts-and-type-parameters/two-spots/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-03-conflicts-and-type-parameters/two-spots/src/main.rs -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/message-displayer-and-collector/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/message-displayer-and-collector/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/message-displayer-and-collector/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/message-displayer-and-collector/src/main.rs -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/overview/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/overview/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/overview/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/overview/src/main.rs -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/simple-message-collector/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/simple-message-collector/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/simple-message-collector/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/simple-message-collector/src/main.rs -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/simple-message-displayer/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/simple-message-displayer/Cargo.toml -------------------------------------------------------------------------------- /code/ch01-04-variance-in-practice/simple-message-displayer/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/code/ch01-04-variance-in-practice/simple-message-displayer/src/main.rs -------------------------------------------------------------------------------- /src/SUMMARY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/SUMMARY.md -------------------------------------------------------------------------------- /src/ch01-01-building-an-intuition.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/ch01-01-building-an-intuition.md -------------------------------------------------------------------------------- /src/ch01-02-formalizing-variance.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/ch01-02-formalizing-variance.md -------------------------------------------------------------------------------- /src/ch01-03-conflicts-and-type-parameters.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/ch01-03-conflicts-and-type-parameters.md -------------------------------------------------------------------------------- /src/ch01-04-variance-in-practice.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/ch01-04-variance-in-practice.md -------------------------------------------------------------------------------- /src/ch01-05-epilogue.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/ch01-05-epilogue.md -------------------------------------------------------------------------------- /src/ch02-00-acknowledgements.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/ch02-00-acknowledgements.md -------------------------------------------------------------------------------- /src/img/does_not_compile.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/src/img/does_not_compile.svg -------------------------------------------------------------------------------- /theme/head.hbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sunshowers-code/lifetime-variance/HEAD/theme/head.hbs --------------------------------------------------------------------------------