官术网_书友最值得收藏!

  • Rust Programming Cookbook
  • Claus Matzinger
  • 315字
  • 2021-06-24 12:27:45

How it works...

Markdown is a great language that allows for creating formatted documentation quickly. However, feature support is typically tricky, so check out Rust's RFC for supported formatting (https://github.com/rust-lang/rfcs/blob/master/text/0505-api-comment-conventions.md) to find out whether some more advanced statements can be used. In general, writing documentation is dreaded by most developers, which is why it's very important to make it as simple and effortless as possible. The /// pattern is quite common and has been expanded in Rust so that the documentation can apply to the code that follows (///) or that contains it (//!). Examples can be seen in step 1 and step 4.

The approach the Rust project chose allows for a few lines explaining the (public) function, and then the rustdoc compiler (invoked in step 2 with cargo doc) does the rest: exposing public members, cross-linking, listing all of the available types and modules, and much more. While the output is fully customizable (step 6), the default is already visually quite appealing (we think). 

By default, cargo doc builds the documentation for the entire project—including dependencies. 

Special sections (step 3) add another dimension to the documentation output: they allow for IDEs or editors to make some sense of the provided information and highlight, for example, that (and when) a function may panic. The examples section in your newly generated documentation will even compile and run code in the form of doctests (see the Testing your documentation recipe) so you will be notified when your examples become invalid.

The rustdoc output is also independent of a web server, which means that it can be used wherever static hosting is supported. In fact, the Rust project builds and serves every crate's documentation that is hosted on https://crates.io, on https://docs.rs

Now that we can create documentation successfully, we should move on to the next recipe.

主站蜘蛛池模板: 太仓市| 渝北区| 百色市| 农安县| 馆陶县| 准格尔旗| 宁夏| 绥芬河市| 黔东| 宝兴县| 怀宁县| 晋州市| 南充市| 嫩江县| 盐津县| 饶平县| 桓台县| 嘉义市| 成都市| 成安县| 许昌市| 玉龙| 双城市| 普兰店市| 伊吾县| 济宁市| 都兰县| 盖州市| 石城县| 蓝田县| 建昌县| 绥棱县| 莆田市| 剑川县| 新竹县| 齐齐哈尔市| 乡城县| 玉树县| 东乌珠穆沁旗| 许昌县| 西峡县|