atc0005 / notes

Various notes, quick references and topics I want to explore further
MIT License
0 stars 0 forks source link

Generate fresh copy of "The Rust Programming Language" book #20

Open atc0005 opened 4 years ago

atc0005 commented 4 years ago

Directions

  1. lxc launch ubuntu:18.04 rustbook-builds
  2. lxc exec rustbook-builds -- sudo --login --user ubuntu
  3. sudo apt-get update
  4. sudo apt-get install -y git build-essential
  5. curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
  6. source $HOME/.cargo/env
  7. cargo install mdbook --vers 0.3.7
  8. cargo install mdbook-epub
  9. git clone https://github.com/rust-lang/book rust-book
  10. cd rust-book
  11. Modify book.toml
    • see below
  12. mdbook build
  13. ls -lh book/epub/
  14. exit
  15. lxc file pull rustbook-builds/home/ubuntu/rust-book/book/epub/'The Rust Programming Language.epub' ./

Since I build within an LXD container, the above will generate a new LXD container, build the book and pull the newly generated epub from the container into the host environment.

Modifications to book.toml

ubuntu@rustbook-builds:~/rust-book$ git diff

diff --git a/book.toml b/book.toml
index 6797f2df..f1797bde 100644
--- a/book.toml
+++ b/book.toml
@@ -5,3 +5,6 @@ author = "Steve Klabnik and Carol Nichols, with Contributions from the Rust Comm
 [output.html]
 additional-css = ["ferris.css", "theme/2018-edition.css"]
 additional-js = ["ferris.js"]
+
+[output.epub]
+

References

atc0005 commented 1 year ago
  • lxc launch ubuntu:18.04 rustbook-builds

I used ubuntu:22.04 in place of ubuntu:18.04, but otherwise the directions work the same now as they did when I originally recorded these notes.

The book built as described using rust-lang/book@21a2ed14f4480dab62438dcc1130291bebc65379.

Well, mostly. My notes don't indicate whether the epub file validated after building it. When I validate the resulting epub using epubcheck v5.0.0 I get these results:

$ java -jar ~/Desktop/epubtest/epubcheck-5.0.0/epubcheck.jar 'The Rust Programming Language.epub'
Validating using EPUB version 2.0.1 rules.
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/nav.xhtml(136,60): Error while parsing file: element "T" not allowed anywhere; expected the element end-tag, text or element "a", "abbr", "acronym", "applet", "b", "bdo", "big", "br", "cite", "code", "del", "dfn", "em", "i", "iframe", "img", "ins", "kbd", "map", "noscript", "ns:svg", "object", "q", "samp", "script", "small", "span", "strong", "sub", "sup", "tt" or "var" (with xmlns:ns="http://www.w3.org/2000/svg")
FATAL(RSC-016): The Rust Programming Language.epub/OEBPS/nav.xhtml(136,91): Fatal Error while parsing file: The element type "T" must be terminated by the matching end-tag "</T>".
FATAL(RSC-016): The Rust Programming Language.epub/OEBPS/ch02-00-guessing-game-tutorial.html(37,37): Fatal Error while parsing file: The string "--" is not permitted within comments.
FATAL(RSC-016): The Rust Programming Language.epub/OEBPS/ch11-01-writing-tests.html(51,27): Fatal Error while parsing file: The string "--" is not permitted within comments.
FATAL(RSC-016): The Rust Programming Language.epub/OEBPS/ch12-05-working-with-environment-variables.html(626,27): Fatal Error while parsing file: The string "--" is not permitted within comments.
FATAL(RSC-016): The Rust Programming Language.epub/OEBPS/ch14-01-release-profiles.html(23,15): Fatal Error while parsing file: The string "--" is not permitted within comments.
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch14-02-publishing-to-crates-io.html(62,122): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch14-02-publishing-to-crates-io.html(146,121): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch14-02-publishing-to-crates-io.html(212,139): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch14-02-publishing-to-crates-io.html(287,134): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
FATAL(RSC-016): The Rust Programming Language.epub/OEBPS/ch14-02-publishing-to-crates-io.html(454,25): Fatal Error while parsing file: The string "--" is not permitted within comments.
FATAL(RSC-016): The Rust Programming Language.epub/OEBPS/ch14-03-cargo-workspaces.html(90,21): Fatal Error while parsing file: The string "--" is not permitted within comments.
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch15-01-box.html(188,95): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch15-01-box.html(236,72): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch15-04-rc.html(41,100): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-005): The Rust Programming Language.epub/OEBPS/ch15-06-reference-cycles.html(139,78): Error while parsing file: element "img" not allowed here; expected the element end-tag or element "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" or "ul" (with xmlns:ns="http://www.w3.org/2000/svg")
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch01-02-hello-world.html(23,51): Referenced resource "OEBPS/appendix-04-useful-development-tools.md" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch01-02-hello-world.html(70,53): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch01-02-hello-world.html(92,51): Referenced resource "OEBPS/appendix-04-useful-development-tools.md" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch01-03-hello-cargo.html(26,50): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch03-00-common-programming-concepts.html(29,70): Referenced resource "OEBPS/appendix-01-keywords.md" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-01-variables-and-mutability.html(13,100): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-01-variables-and-mutability.html(69,145): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-01-variables-and-mutability.html(101,46): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch03-01-variables-and-mutability.html(117,69): Referenced resource "reference/const_eval.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-01-variables-and-mutability.html(130,135): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-02-data-types.html(20,125): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch03-02-data-types.html(171,90): Referenced resource "OEBPS/appendix-02-operators.md" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-02-data-types.html(186,126): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-02-data-types.html(206,116): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-02-data-types.html(273,122): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-05-control-flow.html(39,166): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch03-05-control-flow.html(254,78): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch04-01-what-is-ownership.html(130,75): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch04-01-what-is-ownership.html(154,116): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch04-01-what-is-ownership.html(211,52): Referenced resource "std/ops/trait.Drop.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch04-03-slices.html(84,120): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch04-03-slices.html(208,125): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch04-03-slices.html(352,82): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch05-01-defining-structs.html(13,97): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch05-01-defining-structs.html(238,124): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch05-01-defining-structs.html(245,138): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch05-01-defining-structs.html(277,66): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch05-02-example-structs.html(66,70): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch05-02-example-structs.html(144,47): Referenced resource "std/macro.println.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch05-02-example-structs.html(235,119): Referenced resource "std/macro.dbg.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch05-02-example-structs.html(289,97): Referenced resource "OEBPS/appendix-03-derivable-traits.md" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch05-02-example-structs.html(292,109): Referenced resource "reference/attributes.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch05-03-method-syntax.html(17,124): Referenced resource "OEBPS/ch17-02-trait-objects.md" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch05-03-method-syntax.html(124,177): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch06-01-defining-an-enum.html(179,101): Referenced resource "std/net/enum.IpAddr.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch06-01-defining-an-enum.html(306,82): Referenced resource "std/option/enum.Option.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch06-01-defining-an-enum.html(395,60): Referenced resource "std/option/enum.Option.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch06-02-match.html(359,117): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch07-01-packages-and-crates.html(27,145): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch07-03-paths-for-referring-to-an-item-in-the-module-tree.html(35,163): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html(217,172): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html(237,124): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html(380,122): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html(382,111): Referenced resource "std/prelude/index.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch08-00-common-collections.html(30,45): Referenced resource "std/collections/index.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch08-01-vectors.html(40,110): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch08-01-vectors.html(171,126): Referenced resource "nomicon/vec/vec.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch08-01-vectors.html(250,48): Referenced resource "std/vec/struct.Vec.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch08-03-hash-maps.html(117,81): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch08-03-hash-maps.html(215,43): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch09-01-unrecoverable-errors-with-panic.html(155,105): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch09-02-recoverable-errors-with-result.html(18,101): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch09-02-recoverable-errors-with-result.html(520,99): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch09-02-recoverable-errors-with-result.html(534,119): Referenced resource "std/process/trait.Termination.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch09-03-to-panic-or-not-to-panic.html(84,128): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch10-02-traits.html(506,149): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch10-02-traits.html(515,55): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch10-03-lifetime-syntax.html(16,113): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch10-03-lifetime-syntax.html(144,101): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch10-03-lifetime-syntax.html(735,39): Referenced resource "reference/index.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch11-03-test-organization.html(257,102): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-01-accepting-command-line-arguments.html(54,152): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-03-improving-error-handling-and-modularity.html(314,113): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-03-improving-error-handling-and-modularity.html(334,79): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-03-improving-error-handling-and-modularity.html(481,92): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-03-improving-error-handling-and-modularity.html(615,119): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-04-testing-the-librarys-functionality.html(39,69): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-04-testing-the-librarys-functionality.html(189,115): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch12-04-testing-the-librarys-functionality.html(287,99): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch13-01-closures.html(104,136): Referenced resource "std/option/enum.Option.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch13-03-improving-our-io-project.html(319,56): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch15-01-box.html(28,96): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch15-01-box.html(35,175): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch15-02-deref.html(170,85): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch15-02-deref.html(210,108): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch15-04-rc.html(163,97): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch15-05-interior-mutability.html(585,60): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch15-06-reference-cycles.html(463,59): Referenced resource "nomicon/index.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch16-01-threads.html(198,90): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch16-03-shared-state.html(244,59): Referenced resource "std/sync/atomic/index.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch16-03-shared-state.html(296,96): Referenced resource "std/sync/atomic/index.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch16-04-extensible-concurrency-sync-and-send.html(47,105): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch16-04-extensible-concurrency-sync-and-send.html(57,115): Referenced resource "nomicon/index.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch17-02-trait-objects.html(53,145): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch17-02-trait-objects.html(319,83): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch17-03-oo-design-patterns.html(495,112): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch17-03-oo-design-patterns.html(661,58): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch18-01-all-the-places-for-patterns.html(44,123): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch18-01-all-the-places-for-patterns.html(212,124): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch18-03-pattern-syntax.html(78,119): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-01-unsafe-rust.html(70,93): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-01-unsafe-rust.html(150,49): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-01-unsafe-rust.html(292,61): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-01-unsafe-rust.html(403,59): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-01-unsafe-rust.html(467,114): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch19-01-unsafe-rust.html(482,87): Referenced resource "reference/items/unions.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-03-advanced-traits.html(13,97): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-03-advanced-traits.html(169,179): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-03-advanced-traits.html(637,86): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-03-advanced-traits.html(642,169): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-03-advanced-traits.html(681,173): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-04-advanced-types.html(20,175): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-04-advanced-types.html(41,141): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-04-advanced-types.html(318,156): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-04-advanced-types.html(333,149): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-05-advanced-functions-and-closures.html(82,63): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-05-advanced-functions-and-closures.html(86,72): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-05-advanced-functions-and-closures.html(142,107): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch19-06-macros.html(111,110): Referenced resource "reference/macros-by-example.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch19-06-macros.html(451,76): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch20-02-multithreaded.html(355,101): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch20-02-multithreaded.html(370,64): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch20-02-multithreaded.html(659,45): Referenced resource "std/thread/struct.Builder.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/ch20-02-multithreaded.html(660,58): Referenced resource "std/thread/struct.Builder.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/ch20-02-multithreaded.html(918,144): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/appendix-01-keywords.html(15,72): Fragment identifier is not defined.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/appendix-01-keywords.html(59,76): Referenced resource "reference/items/unions.html" could not be found in the EPUB.
ERROR(RSC-007): The Rust Programming Language.epub/OEBPS/appendix-03-derivable-traits.html(27,41): Referenced resource "std/index.html" could not be found in the EPUB.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/appendix-03-derivable-traits.html(43,38): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/appendix-03-derivable-traits.html(112,114): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/appendix-03-derivable-traits.html(143,138): Fragment identifier is not defined.
ERROR(RSC-012): The Rust Programming Language.epub/OEBPS/appendix-07-nightly-rust.html(159,37): Fragment identifier is not defined.

Check finished with errors
Messages: 7 fatals / 131 errors / 0 warnings / 0 infos

EPUBCheck completed

Importing into Google Play Books fails with this version of the epub.

However, after converting from epub to epub using calibre 6.14.1 it imports without issue.