{"id":101435,"date":"2025-03-14T02:29:41","date_gmt":"2025-03-13T22:59:41","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/"},"modified":"2025-03-14T02:29:41","modified_gmt":"2025-03-13T22:59:41","slug":"%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/","title":{"rendered":"\u062a\u0633\u0644\u0637 \u0628\u0631 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc \u062f\u0631 \u0632\u0646\u06af \u0632\u062f\u06af\u06cc: \u0641\u0631\u0627\u062a\u0631 \u0627\u0632 \u0646\u062a\u06cc\u062c\u0647 \u0648 \u06af\u0632\u06cc\u0646\u0647"},"content":{"rendered":"<div data-article-id=\"2331484\" id=\"article-body\">\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F43zvj6dqkx1fshjhjv2s.png\" alt=\"\u067e\u0648\u0634\u0634\" loading=\"lazy\" width=\"800\" height=\"336\" title=\"\"><\/p>\n<p>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u062f\u0631 \u0632\u0646\u06af \u0628\u0647 \u0647\u0645\u0627\u0646 \u0627\u0646\u062f\u0627\u0632\u0647 \u0633\u0627\u062f\u0647 \u0646\u06cc\u0633\u062a <code>Result<\/code> \u0648\u062a <code>Option<\/code>\u0628\u0634\u0631 \u0628\u0631\u0627\u06cc \u0645\u0628\u062a\u062f\u06cc\u0627\u0646 \u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc Rust \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06a9\u0627\u0645\u0644\u0627\u064b \u062f\u0648\u0633\u062a\u0627\u0646\u0647 \u0628\u0627\u0634\u062f. \u0628\u0639\u062f \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u062a\u0644\u0627\u0634 \u0628\u0627 \u0622\u0646 \u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u062f\u0627\u0646\u0634 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u06a9\u0646\u0645. \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0627\u0632 \u062f\u0648 \u0628\u062e\u0634 \u0627\u0635\u0644\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<ol>\n<li>\u0631\u0648\u0634\u0647\u0627\u06cc \u0631\u0633\u0645\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0628\u0627 <code>Result<\/code>\n<\/li>\n<li>\u0646\u062d\u0648\u0647 \u062a\u0639\u0631\u06cc\u0641 \u0648 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc.<\/li>\n<\/ol>\n<p>\u062a\u0633\u0644\u0637 \u0628\u0631 \u0627\u06cc\u0646 \u0645\u0641\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0634\u0645\u0627 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0628\u0631 \u0686\u0627\u0644\u0634 \u0647\u0627\u06cc \u062e\u0637\u0627\u06cc \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u063a\u0644\u0628\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D8%B1%D9%88%D8%B4%D9%87%D8%A7%DB%8C_%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AE%D8%B7%D8%A7\" >\u0631\u0648\u0634\u0647\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#or_%D9%88%D8%AA_and\" >or()  \u0648\u062a and()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#or_else_%D9%88%D8%AA_and_then\" >or_else()  \u0648\u062a and_then()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#map\" >map()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#map_err\" >map_err()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#map_or\" >map_or()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#map_or_else\" >map_or_else()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#ok_or\" >ok_or()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#ok_or_else\" >ok_or_else()<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D9%86%D8%AD%D9%88%D9%87_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%AE%D8%B7%D8%A7\" >\u0646\u062d\u0648\u0647 \u0637\u0631\u0627\u062d\u06cc \u062e\u0637\u0627<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%D8%B3%D8%A7%D8%AF%D9%87\" >\u062a\u0639\u0631\u06cc\u0641 \u062e\u0637\u0627\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u062f\u0647<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7%DB%8C_%D9%BE%DB%8C%DA%86%DB%8C%D8%AF%D9%87_%D8%AA%D8%B1\" >\u062a\u0639\u0631\u06cc\u0641 \u062e\u0637\u0627\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D8%AA%D8%A8%D8%AF%DB%8C%D9%84_%D8%AE%D8%B7%D8%A7\" >\u062a\u0628\u062f\u06cc\u0644 \u062e\u0637\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%A7%D9%86%D9%88%D8%A7%D8%B9_%D9%85%D8%AE%D8%AA%D9%84%D9%81_%D8%AE%D8%B7%D8%A7%DB%8C\" >\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0627\u0646\u0648\u0627\u0639 \u0645\u062e\u062a\u0644\u0641 \u062e\u0637\u0627\u06cc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%DA%98%DB%8C_%D9%87%D8%A7%DB%8C_%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D8%AE%D8%B7%D8%A7%DB%8C\" >\u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0637\u0627\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#1_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Box\" >1. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Box<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#2_%D8%A7%D9%86%D9%88%D8%A7%D8%B9_%D8%AE%D8%B7%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\" >2 \u0627\u0646\u0648\u0627\u0639 \u062e\u0637\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#3_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_thiserror\" >3. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 thiserror<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#4_anyhow\" >4 anyhow<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D8%A7%D9%81%DA%A9%D8%A7%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%DB%8C_%D9%81%D9%82%D8%B7_%D8%A7%DB%8C%D9%86_%DA%A9%D8%A7%D8%B1_%D8%B1%D8%A7_%D8%A7%D9%86%D8%AC%D8%A7%D9%85_%D8%AF%D9%87%DB%8C%D8%AF\" >\u0627\u0641\u06a9\u0627\u0631 \u0646\u0647\u0627\u06cc\u06cc: \u0641\u0642\u0637 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f!<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/nabfollower.com\/blog\/%d8%aa%d8%b3%d9%84%d8%b7-%d8%a8%d8%b1-%d8%b1%d8%b3%db%8c%d8%af%da%af%db%8c-%d8%a8%d9%87-%d8%ae%d8%b7%d8%a7%db%8c-%d8%af%d8%b1-%d8%b2%d9%86%da%af-%d8%b2%d8%af%da%af%db%8c-%d9%81%d8%b1%d8%a7%d8%aa\/#%D9%85%D8%A7_Leapcell_%D8%8C_%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8_%D8%A8%D8%B1%D8%AA%D8%B1_%D8%B4%D9%85%D8%A7_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%85%DB%8C%D8%B2%D8%A8%D8%A7%D9%86%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D9%87%D8%A7%DB%8C_%D8%B2%D9%86%DA%AF_%D8%B2%D8%AF%DA%AF%DB%8C_%D9%87%D8%B3%D8%AA%DB%8C%D9%85\" >\u0645\u0627 Leapcell \u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u0631\u062a\u0631 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u0647\u0633\u062a\u06cc\u0645.<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B1%D9%88%D8%B4%D9%87%D8%A7%DB%8C_%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%AE%D8%B7%D8%A7\"><\/span>\n<p>  \u0631\u0648\u0634\u0647\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u0631\u0648\u0634\u0647\u0627\u06cc \u062f\u0627\u062e\u0644\u06cc Rust \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0633\u06cc\u0627\u0631 \u0633\u0627\u062f\u0647 \u062a\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u0628\u0631\u062e\u06cc \u0627\u0632 \u0631\u0648\u0634\u0647\u0627\u06cc \u0645\u0641\u06cc\u062f \u0639\u0628\u0627\u0631\u062a\u0646\u062f \u0627\u0632:<\/p>\n<ul>\n<li><code>or()<\/code><\/li>\n<li><code>and()<\/code><\/li>\n<li><code>or_else()<\/code><\/li>\n<li><code>and_then()<\/code><\/li>\n<li><code>map()<\/code><\/li>\n<li><code>map_err()<\/code><\/li>\n<li><code>map_or()<\/code><\/li>\n<li><code>map_or_else()<\/code><\/li>\n<li><code>ok_or()<\/code><\/li>\n<li><code>ok_or_else()<\/code><\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<p>\u062f\u0631 \u0632\u06cc\u0631 \u060c \u0645\u0646 \u062a\u0648\u0636\u06cc\u062d \u062e\u0648\u0627\u0647\u0645 \u062f\u0627\u062f \u06a9\u0647 \u0686\u0647 \u0645\u0648\u0642\u0639 \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0648\u0634 \u0647\u0627 \u060c \u0646\u062d\u0648\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0646\u0647\u0627 \u0648 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0646\u062d\u0648\u0647 \u0637\u0631\u0627\u062d\u06cc \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>Err<\/code> \u0627\u0646\u0648\u0627\u0639 \u0647\u0646\u06af\u0627\u0645 \u0646\u0648\u0634\u062a\u0646 \u06a9\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"or_%D9%88%D8%AA_and\"><\/span>\n<p>  <code>or()<\/code>  \u0648\u062a <code>and()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634\u0647\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0628\u06cc\u0646 \u062f\u0648 \u06af\u0632\u06cc\u0646\u0647 \u060c \u0645\u0634\u0627\u0628\u0647 \u0645\u0646\u0637\u0642\u06cc \u06cc\u0627 \u0648 \u0648 \u0648 \u0648 \u0648 \u0648 \u0648 \u0648 \u0648.<\/p>\n<ul>\n<li>\n<code>or()<\/code>: \u0639\u0628\u0627\u0631\u0627\u062a \u0631\u0627 \u0628\u0647 \u062a\u0631\u062a\u06cc\u0628 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f. \u0627\u06af\u0631 \u0647\u0631 \u0628\u06cc\u0627\u0646 \u0645\u0646\u062c\u0631 \u0634\u0648\u062f <code>Some<\/code> \u06cc\u0627 <code>Ok<\/code>\u060c \u0627\u06cc\u0646 \u0645\u0642\u062f\u0627\u0631 \u0628\u0644\u0627\u0641\u0627\u0635\u0644\u0647 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<li>\n<code>and()<\/code>: \u062f\u0631 \u0635\u0648\u0631\u062a \u0648\u062c\u0648\u062f \u0647\u0631 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 \u0631\u0627 \u0627\u0632 \u0639\u0628\u0627\u0631\u062a \u062f\u0648\u0645 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f <code>Some<\/code> \u06cc\u0627 <code>Ok<\/code>\u0628\u0634\u0631 \u0627\u06af\u0631 \u0647\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0627\u06cc \u0628\u0627\u0634\u062f <code>None<\/code> \u06cc\u0627 <code>Err<\/code>\u060c \u062f\u0631 \u0639\u0648\u0636 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">let<\/span> <span class=\"n\">s1<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"some1\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">s2<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"some2\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">n<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">o1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"ok1\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">o2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"ok2\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">e1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error1\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">e2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error2\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">s2<\/span><span class=\"p\">),<\/span> <span class=\"n\">s1<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Some1 or Some2 = Some1<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"p\">),<\/span> <span class=\"n\">s1<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Some or None = Some<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"p\">),<\/span> <span class=\"n\">s1<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ None or Some = Some<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"p\">),<\/span> <span class=\"n\">n<\/span><span class=\"p\">);<\/span>    <span class=\"c1\">\/\/ None1 or None2 = None2<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">o2<\/span><span class=\"p\">),<\/span> <span class=\"n\">o1<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Ok1 or Ok2 = Ok1<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"p\">),<\/span> <span class=\"n\">o1<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Ok or Err = Ok<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"p\">),<\/span> <span class=\"n\">o1<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Err or Ok = Ok<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.or<\/span><span class=\"p\">(<\/span><span class=\"n\">e2<\/span><span class=\"p\">),<\/span> <span class=\"n\">e2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Err1 or Err2 = Err2<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">s2<\/span><span class=\"p\">),<\/span> <span class=\"n\">s2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Some1 and Some2 = Some2<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"p\">),<\/span> <span class=\"n\">n<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Some and None = None<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"p\">),<\/span> <span class=\"n\">n<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ None and Some = None<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"p\">),<\/span> <span class=\"n\">n<\/span><span class=\"p\">);<\/span>   <span class=\"c1\">\/\/ None1 and None2 = None1<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">o2<\/span><span class=\"p\">),<\/span> <span class=\"n\">o2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Ok1 and Ok2 = Ok2<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"p\">),<\/span> <span class=\"n\">e1<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Ok and Err = Err<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"p\">),<\/span> <span class=\"n\">e1<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Err and Ok = Err<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.and<\/span><span class=\"p\">(<\/span><span class=\"n\">e2<\/span><span class=\"p\">),<\/span> <span class=\"n\">e1<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Err1 and Err2 = Err1<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"or_else_%D9%88%D8%AA_and_then\"><\/span>\n<p>  <code>or_else()<\/code>  \u0648\u062a <code>and_then()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 <code>or()<\/code> \u0648\u062a <code>and()<\/code> \u0631\u0648\u0634\u0647\u0627 \u0641\u0642\u0637 \u0628\u06cc\u0646 \u062f\u0648 \u0645\u0642\u062f\u0627\u0631 \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0627\u0635\u0644\u0627\u062d \u06a9\u0646\u0646\u062f. \u0627\u06af\u0631 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0645\u0646\u0637\u0642 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u062f\u0627\u0631\u06cc\u062f \u060c \u0628\u0627\u06cc\u062f \u0627\u0632 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>or_else()<\/code> \u0648\u062a <code>and_then()<\/code>\u0628\u0634\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"c1\">\/\/ Using or_else() with Option<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">s1<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"some1\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">s2<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"some2\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">fn_some<\/span> <span class=\"o\">=<\/span> <span class=\"p\">||<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"some2\"<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Equivalent to: let fn_some = || -&gt; Option&lt;&amp;str&gt; { Some(\"some2\") };<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">n<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">fn_none<\/span> <span class=\"o\">=<\/span> <span class=\"p\">||<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_some<\/span><span class=\"p\">),<\/span> <span class=\"n\">s1<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Some1 or_else Some2 = Some1<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_none<\/span><span class=\"p\">),<\/span> <span class=\"n\">s1<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Some or_else None = Some<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_some<\/span><span class=\"p\">),<\/span> <span class=\"n\">s2<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ None or_else Some = Some<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_none<\/span><span class=\"p\">),<\/span> <span class=\"nb\">None<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ None1 or_else None2 = None2<\/span>\n\n<span class=\"c1\">\/\/ Using or_else() with Result<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">o1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"ok1\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">o2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"ok2\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">fn_ok<\/span> <span class=\"o\">=<\/span> <span class=\"p\">|<\/span><span class=\"n\">_<\/span><span class=\"p\">|<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"ok2\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">e1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error1\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">e2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error2\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">fn_err<\/span> <span class=\"o\">=<\/span> <span class=\"p\">|<\/span><span class=\"n\">_<\/span><span class=\"p\">|<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error2\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_ok<\/span><span class=\"p\">),<\/span> <span class=\"n\">o1<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Ok1 or_else Ok2 = Ok1<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_err<\/span><span class=\"p\">),<\/span> <span class=\"n\">o1<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Ok or_else Err = Ok<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_ok<\/span><span class=\"p\">),<\/span> <span class=\"n\">o2<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Err or_else Ok = Ok<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_err<\/span><span class=\"p\">),<\/span> <span class=\"n\">e2<\/span><span class=\"p\">);<\/span>  <span class=\"c1\">\/\/ Err1 or_else Err2 = Err2<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"map\"><\/span>\n<p>  <code>map()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u0642\u062f\u0627\u0631 \u062f\u0627\u062e\u0644 \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f <code>Result<\/code> \u06cc\u0627 <code>Option<\/code>\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>map()<\/code>\u0628\u0634\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">let<\/span> <span class=\"n\">s1<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">s2<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">n1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">n2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">usize<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">o1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">o2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">usize<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">e1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">e2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">usize<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">fn_character_count<\/span> <span class=\"o\">=<\/span> <span class=\"p\">|<\/span><span class=\"n\">s<\/span><span class=\"p\">:<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">|<\/span> <span class=\"n\">s<\/span><span class=\"nf\">.chars<\/span><span class=\"p\">()<\/span><span class=\"nf\">.count<\/span><span class=\"p\">();<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s1<\/span><span class=\"nf\">.map<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_character_count<\/span><span class=\"p\">),<\/span> <span class=\"n\">s2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Some1 map = Some2<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n1<\/span><span class=\"nf\">.map<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_character_count<\/span><span class=\"p\">),<\/span> <span class=\"n\">n2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ None1 map = None2<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.map<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_character_count<\/span><span class=\"p\">),<\/span> <span class=\"n\">o2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Ok1 map = Ok2<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.map<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_character_count<\/span><span class=\"p\">),<\/span> <span class=\"n\">e2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Err1 map = Err2<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"map_err\"><\/span>\n<p>  <code>map_err()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0627\u0635\u0644\u0627\u062d <code>Err<\/code> \u0627\u0631\u0632\u0634 \u062f\u0631 <code>Result<\/code>\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>map_err()<\/code>\u0628\u0634\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">let<\/span> <span class=\"n\">o1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">o2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"nb\">isize<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">e1<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"404\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">e2<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"nb\">isize<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"mi\">404<\/span><span class=\"p\">);<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">fn_character_count<\/span> <span class=\"o\">=<\/span> <span class=\"p\">|<\/span><span class=\"n\">s<\/span><span class=\"p\">:<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">|<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">isize<\/span> <span class=\"p\">{<\/span> <span class=\"n\">s<\/span><span class=\"nf\">.parse<\/span><span class=\"p\">()<\/span><span class=\"nf\">.unwrap<\/span><span class=\"p\">()<\/span> <span class=\"p\">};<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">o1<\/span><span class=\"nf\">.map_err<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_character_count<\/span><span class=\"p\">),<\/span> <span class=\"n\">o2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Ok1 map = Ok2<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">e1<\/span><span class=\"nf\">.map_err<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_character_count<\/span><span class=\"p\">),<\/span> <span class=\"n\">e2<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Err1 map = Err2<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"map_or\"><\/span>\n<p>  <code>map_or()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 \u0645\u0637\u0645\u0626\u0646 \u0647\u0633\u062a\u06cc\u062f \u06a9\u0647 \u0647\u06cc\u0686 \u0648\u062c\u0648\u062f \u0646\u062e\u0648\u0627\u0647\u062f \u062f\u0627\u0634\u062a <code>Err<\/code>\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>map_or()<\/code> \u0628\u0647 \u062c\u0627\u06cc \u0622\u0646 \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">const<\/span> <span class=\"n\">V_DEFAULT<\/span><span class=\"p\">:<\/span> <span class=\"nb\">u32<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">s<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">u32<\/span><span class=\"p\">,<\/span> <span class=\"p\">()<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">n<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">u32<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">fn_closure<\/span> <span class=\"o\">=<\/span> <span class=\"p\">|<\/span><span class=\"n\">v<\/span><span class=\"p\">:<\/span> <span class=\"nb\">u32<\/span><span class=\"p\">|<\/span> <span class=\"n\">v<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s<\/span><span class=\"nf\">.map_or<\/span><span class=\"p\">(<\/span><span class=\"n\">V_DEFAULT<\/span><span class=\"p\">,<\/span> <span class=\"n\">fn_closure<\/span><span class=\"p\">),<\/span> <span class=\"mi\">12<\/span><span class=\"p\">);<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.map_or<\/span><span class=\"p\">(<\/span><span class=\"n\">V_DEFAULT<\/span><span class=\"p\">,<\/span> <span class=\"n\">fn_closure<\/span><span class=\"p\">),<\/span> <span class=\"n\">V_DEFAULT<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"map_or_else\"><\/span>\n<p>  <code>map_or_else()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><code>map_or()<\/code>  \u0641\u0642\u0637 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u06cc\u06a9 \u0645\u0642\u062f\u0627\u0631 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f \u060c \u0627\u0645\u0627 \u0627\u06af\u0631 \u0628\u0631\u0627\u06cc \u062a\u0647\u06cc\u0647 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u0628\u0647 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f \u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>map_or_else()<\/code>\u0628\u0634\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">let<\/span> <span class=\"n\">s<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"mi\">10<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">n<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">i8<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">fn_closure<\/span> <span class=\"o\">=<\/span> <span class=\"p\">|<\/span><span class=\"n\">v<\/span><span class=\"p\">:<\/span> <span class=\"nb\">i8<\/span><span class=\"p\">|<\/span> <span class=\"n\">v<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">2<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">fn_default<\/span> <span class=\"o\">=<\/span> <span class=\"p\">||<\/span> <span class=\"mi\">1<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s<\/span><span class=\"nf\">.map_or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_default<\/span><span class=\"p\">,<\/span> <span class=\"n\">fn_closure<\/span><span class=\"p\">),<\/span> <span class=\"mi\">12<\/span><span class=\"p\">);<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.map_or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_default<\/span><span class=\"p\">,<\/span> <span class=\"n\">fn_closure<\/span><span class=\"p\">),<\/span> <span class=\"mi\">1<\/span><span class=\"p\">);<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"ok_or\"><\/span>\n<p>  <code>ok_or()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u06cc\u06a9 \u0631\u0627 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f <code>Option<\/code> \u0628\u0647 <code>Result<\/code>\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f <code>ok_or()<\/code>\u0628\u0634\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">const<\/span> <span class=\"n\">ERR_DEFAULT<\/span><span class=\"p\">:<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"error message\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">s<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">n<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">o<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"n\">ERR_DEFAULT<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s<\/span><span class=\"nf\">.ok_or<\/span><span class=\"p\">(<\/span><span class=\"n\">ERR_DEFAULT<\/span><span class=\"p\">),<\/span> <span class=\"n\">o<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Some(T) -&gt; Ok(T)<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.ok_or<\/span><span class=\"p\">(<\/span><span class=\"n\">ERR_DEFAULT<\/span><span class=\"p\">),<\/span> <span class=\"n\">e<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ None -&gt; Err(default)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"ok_or_else\"><\/span>\n<p>  <code>ok_or_else()<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0646\u06af\u0627\u0645 \u0628\u0631\u062e\u0648\u0631\u062f \u0628\u0627 \u067e\u062a\u0627\u0646\u0633\u06cc\u0644 <code>Err<\/code> \u0645\u0648\u0627\u0631\u062f \u0648 \u0645\u0627\u06cc\u0644 \u0628\u0647 \u0628\u0627\u0632\u06af\u0634\u062a \u062e\u0637\u0627\u06cc\u06cc \u0627\u0632 \u0647\u0645\u0627\u0646 \u0646\u0648\u0639 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0633\u062a\u0647 \u0634\u062f\u0646 \u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 <code>ok_or_else()<\/code>\u0628\u0634\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">let<\/span> <span class=\"n\">s<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Some<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">n<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Option<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">None<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">fn_err_message<\/span> <span class=\"o\">=<\/span> <span class=\"p\">||<\/span> <span class=\"s\">\"error message\"<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">let<\/span> <span class=\"n\">o<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"s\">\"abcde\"<\/span><span class=\"p\">);<\/span>\n<span class=\"k\">let<\/span> <span class=\"n\">e<\/span><span class=\"p\">:<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;&amp;<\/span><span class=\"nb\">str<\/span><span class=\"p\">,<\/span> <span class=\"o\">&amp;<\/span><span class=\"nb\">str<\/span><span class=\"o\">&gt;<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"s\">\"error message\"<\/span><span class=\"p\">);<\/span>\n\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">s<\/span><span class=\"nf\">.ok_or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_err_message<\/span><span class=\"p\">),<\/span> <span class=\"n\">o<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ Some(T) -&gt; Ok(T)<\/span>\n<span class=\"nd\">assert_eq!<\/span><span class=\"p\">(<\/span><span class=\"n\">n<\/span><span class=\"nf\">.ok_or_else<\/span><span class=\"p\">(<\/span><span class=\"n\">fn_err_message<\/span><span class=\"p\">),<\/span> <span class=\"n\">e<\/span><span class=\"p\">);<\/span> <span class=\"c1\">\/\/ None -&gt; Err(default)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%86%D8%AD%D9%88%D9%87_%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C_%D8%AE%D8%B7%D8%A7\"><\/span>\n<p>  \u0646\u062d\u0648\u0647 \u0637\u0631\u0627\u062d\u06cc \u062e\u0637\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0628\u062a\u062f\u06cc\u0627\u0646 \u063a\u0627\u0644\u0628\u0627\u064b \u0627\u0632 \u0627\u0646\u0648\u0627\u0639 \u062e\u0637\u0627\u06cc \u0633\u062e\u062a Rust \u0646\u0627\u0627\u0645\u06cc\u062f \u0645\u06cc \u0634\u0648\u0646\u062f \u060c \u0628\u0647 \u062e\u0635\u0648\u0635 \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0628\u0627 \u0639\u062f\u0645 \u062a\u0637\u0627\u0628\u0642 \u0646\u0648\u0639 \u062f\u0631 \u0686\u0646\u062f\u06cc\u0646 \u0645\u0648\u0631\u062f \u0631\u0648\u0628\u0631\u0648 \u0645\u06cc \u0634\u0648\u0646\u062f <code>Result<\/code> \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u062f \u0628\u0627 \u062f\u0631\u06a9 <code>Result<\/code> \u0627\u0646\u0648\u0627\u0639 \u0639\u0645\u06cc\u0642 \u062a\u0631 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0627\u06cc\u0646 \u0646\u0627\u0627\u0645\u06cc\u062f\u06cc \u0647\u0627 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C_%D8%B3%D8%A7%D8%AF%D9%87\"><\/span>\n<p>  \u062a\u0639\u0631\u06cc\u0641 \u062e\u0637\u0627\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0633\u0627\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0646\u06af\u0627\u0645 \u0646\u0648\u0634\u062a\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627 \u060c \u062a\u0639\u0631\u06cc\u0641 \u062e\u0637\u0627\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0645\u0639\u0645\u0648\u0644 \u0627\u0633\u062a. \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u062b\u0627\u0644\u06cc \u0627\u0632 \u06cc\u06a9 \u0631\u0633\u0645 \u0633\u0627\u062f\u0647 \u0622\u0648\u0631\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a <code>Result<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"n\">fmt<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ CustomError is a user-defined error type.<\/span>\n<span class=\"nd\">#[derive(Debug)]<\/span>\n<span class=\"k\">struct<\/span> <span class=\"n\">CustomError<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">\/\/ Implementing the Display trait for user-facing error messages.<\/span>\n<span class=\"k\">impl<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"n\">Display<\/span> <span class=\"k\">for<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">fn<\/span> <span class=\"nf\">fmt<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"k\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">f<\/span><span class=\"p\">:<\/span> <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"n\">Formatter<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"nb\">Result<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nd\">write!<\/span><span class=\"p\">(<\/span><span class=\"n\">f<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"An Error Occurred, Please Try Again!\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Example function that generates a CustomError.<\/span>\n<span class=\"k\">fn<\/span> <span class=\"nf\">make_error<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"p\">(),<\/span> <span class=\"n\">CustomError<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"n\">CustomError<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">(){<\/span>\n    <span class=\"k\">match<\/span> <span class=\"nf\">make_error<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"p\">)<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"nd\">eprintln!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"{}\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">e<\/span><span class=\"p\">),<\/span>\n        <span class=\"n\">_<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"nd\">println!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"No error\"<\/span><span class=\"p\">),<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"nd\">eprintln!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"{:?}\"<\/span><span class=\"p\">,<\/span> <span class=\"nf\">make_error<\/span><span class=\"p\">());<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<blockquote>\n<p><strong>\u062a\u0648\u062c\u0647:<\/strong> \u062f\u0631 <code>eprintln!<\/code> \u0645\u0627\u06a9\u0631\u0648 \u0628\u0631\u0627\u06cc \u062e\u0631\u0648\u062c\u06cc \u062e\u0637\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u060c \u0627\u0645\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0634\u0627\u0628\u0647 \u062f\u0627\u0631\u062f <code>println!<\/code> \u0645\u06af\u0631 \u0627\u06cc\u0646\u06a9\u0647 \u062e\u0631\u0648\u062c\u06cc \u0647\u062f\u0627\u06cc\u062a \u0634\u0648\u062f.<\/p>\n<\/blockquote>\n<p>\u0628\u0627 \u0627\u062c\u0631\u0627\u06cc <code>Debug<\/code> \u0648\u062a <code>Display<\/code>\u060c \u0646\u0647 \u062a\u0646\u0647\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0635\u0641\u062d\u0647 \u0646\u0645\u0627\u06cc\u0634 \u0642\u0627\u0644\u0628 \u0628\u0646\u062f\u06cc \u06a9\u0646\u06cc\u062f \u060c \u0628\u0644\u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062e\u0637\u0627\u0647\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0646\u06cc\u0632 \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u06cc\u062f <code>Box<dyn std::error::error=\"\"\/><\/code> \u0627\u0634\u06cc\u0627\u0621 \u0635\u0641\u062a.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%B9%D8%B1%DB%8C%D9%81_%D8%AE%D8%B7%D8%A7%D9%87%D8%A7%DB%8C_%D9%BE%DB%8C%DA%86%DB%8C%D8%AF%D9%87_%D8%AA%D8%B1\"><\/span>\n<p>  \u062a\u0639\u0631\u06cc\u0641 \u062e\u0637\u0627\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u062f\u0646\u06cc\u0627\u06cc \u0648\u0627\u0642\u0639\u06cc \u060c \u0645\u0627 \u0627\u063a\u0644\u0628 \u06a9\u062f\u0647\u0627 \u0648 \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc \u062e\u0637\u0627 \u0631\u0627 \u0627\u062e\u062a\u0635\u0627\u0635 \u0645\u06cc \u062f\u0647\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"n\">fmt<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">struct<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">code<\/span><span class=\"p\">:<\/span> <span class=\"nb\">usize<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">message<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Display different error messages based on the code.<\/span>\n<span class=\"k\">impl<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"n\">Display<\/span> <span class=\"k\">for<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">fn<\/span> <span class=\"nf\">fmt<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"k\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">f<\/span><span class=\"p\">:<\/span> <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"n\">Formatter<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"nb\">Result<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">let<\/span> <span class=\"n\">err_msg<\/span> <span class=\"o\">=<\/span> <span class=\"k\">match<\/span> <span class=\"k\">self<\/span><span class=\"py\">.code<\/span> <span class=\"p\">{<\/span>\n            <span class=\"mi\">404<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"s\">\"Sorry, Cannot find the Page!\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"n\">_<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"s\">\"Sorry, something is wrong! Please Try Again!\"<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">};<\/span>\n        <span class=\"nd\">write!<\/span><span class=\"p\">(<\/span><span class=\"n\">f<\/span><span class=\"p\">,<\/span> <span class=\"s\">\"{}\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">err_msg<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">impl<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"n\">Debug<\/span> <span class=\"k\">for<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">fn<\/span> <span class=\"nf\">fmt<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"k\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">f<\/span><span class=\"p\">:<\/span> <span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"n\">Formatter<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nn\">fmt<\/span><span class=\"p\">::<\/span><span class=\"nb\">Result<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nd\">write!<\/span><span class=\"p\">(<\/span>\n            <span class=\"n\">f<\/span><span class=\"p\">,<\/span>\n            <span class=\"s\">\"CustomError {{ code: {}, message: {} }}\"<\/span><span class=\"p\">,<\/span>\n            <span class=\"k\">self<\/span><span class=\"py\">.code<\/span><span class=\"p\">,<\/span> <span class=\"k\">self<\/span><span class=\"py\">.message<\/span>\n        <span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">make_error<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"p\">(),<\/span> <span class=\"n\">CustomError<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">code<\/span><span class=\"p\">:<\/span> <span class=\"mi\">404<\/span><span class=\"p\">,<\/span>\n        <span class=\"n\">message<\/span><span class=\"p\">:<\/span> <span class=\"nn\">String<\/span><span class=\"p\">::<\/span><span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Page not found\"<\/span><span class=\"p\">),<\/span>\n    <span class=\"p\">})<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">match<\/span> <span class=\"nf\">make_error<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n        <span class=\"nf\">Err<\/span><span class=\"p\">(<\/span><span class=\"n\">e<\/span><span class=\"p\">)<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"nd\">eprintln!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"{}\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">e<\/span><span class=\"p\">),<\/span>\n        <span class=\"n\">_<\/span> <span class=\"k\">=&gt;<\/span> <span class=\"nd\">println!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"No error\"<\/span><span class=\"p\">),<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"nd\">eprintln!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"{:?}\"<\/span><span class=\"p\">,<\/span> <span class=\"nf\">make_error<\/span><span class=\"p\">());<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<blockquote>\n<p>\u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u06cc \u0627\u0632 <code>Display<\/code> \u0648\u062a <code>Debug<\/code> \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062a\u0627 \u062e\u0631\u0648\u062c\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u062a\u0631 \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 <code>#[derive(Debug)]<\/code>\u0628\u0634\u0631<\/p>\n<\/blockquote>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D8%A8%D8%AF%DB%8C%D9%84_%D8%AE%D8%B7%D8%A7\"><\/span>\n<p>  \u062a\u0628\u062f\u06cc\u0644 \u062e\u0637\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 \u0627\u0632 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u0634\u062e\u0635 \u062b\u0627\u0644\u062b \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u060c \u0647\u0631 \u06a9\u062f\u0627\u0645 \u0627\u0646\u0648\u0627\u0639 \u062e\u0637\u0627\u06cc \u062e\u0627\u0635 \u062e\u0648\u062f \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u0646\u062f\u061f \u0632\u0646\u06af \u062e\u0637\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f <code>std::convert::From<\/code> \u0635\u0641\u062a \u0628\u0631\u0627\u06cc \u062a\u0628\u062f\u06cc\u0644 \u062e\u0637\u0627.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">fs<\/span><span class=\"p\">::<\/span><span class=\"n\">File<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"n\">io<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nd\">#[derive(Debug)]<\/span>\n<span class=\"k\">struct<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n   <span class=\"n\">kind<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">,<\/span>\n   <span class=\"n\">message<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"c1\">\/\/ Convert `io::Error` into `CustomError`.<\/span>\n<span class=\"k\">impl<\/span> <span class=\"nb\">From<\/span><span class=\"o\">&lt;<\/span><span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">for<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n   <span class=\"k\">fn<\/span> <span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"n\">error<\/span><span class=\"p\">:<\/span> <span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"k\">Self<\/span> <span class=\"p\">{<\/span>\n       <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n           <span class=\"n\">kind<\/span><span class=\"p\">:<\/span> <span class=\"nn\">String<\/span><span class=\"p\">::<\/span><span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"s\">\"io\"<\/span><span class=\"p\">),<\/span>\n           <span class=\"n\">message<\/span><span class=\"p\">:<\/span> <span class=\"n\">error<\/span><span class=\"nf\">.to_string<\/span><span class=\"p\">(),<\/span>\n       <span class=\"p\">}<\/span>\n   <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"p\">(),<\/span> <span class=\"n\">CustomError<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n   <span class=\"k\">let<\/span> <span class=\"n\">_file<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">File<\/span><span class=\"p\">::<\/span><span class=\"nf\">open<\/span><span class=\"p\">(<\/span><span class=\"s\">\"nonexistent_file.txt\"<\/span><span class=\"p\">)<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n   <span class=\"nf\">Ok<\/span><span class=\"p\">(())<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 <code>?<\/code> \u0627\u067e\u0631\u0627\u062a\u0648\u0631 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f <code>std::io::Error<\/code> \u0628\u0647 <code>CustomError<\/code>\u0628\u0634\u0631 \u0627\u06cc\u0646 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0628\u0647 \u0637\u0648\u0631 \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%B1%D8%B3%DB%8C%D8%AF%DA%AF%DB%8C_%D8%A8%D9%87_%D8%A7%D9%86%D9%88%D8%A7%D8%B9_%D9%85%D8%AE%D8%AA%D9%84%D9%81_%D8%AE%D8%B7%D8%A7%DB%8C\"><\/span>\n<p>  \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0627\u0646\u0648\u0627\u0639 \u0645\u062e\u062a\u0644\u0641 \u062e\u0637\u0627\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 \u0639\u0645\u0644\u06a9\u0631\u062f \u0634\u0645\u0627 \u0628\u0627 \u0627\u0646\u0648\u0627\u0639 \u0645\u062e\u062a\u0644\u0641 \u062e\u0637\u0627\u06cc \u0633\u0631\u0648\u06a9\u0627\u0631 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f \u060c \u0686\u0647 \u0645\u06cc \u0634\u0648\u062f\u061f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">fs<\/span><span class=\"p\">::<\/span><span class=\"n\">File<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">io<\/span><span class=\"p\">::{<\/span><span class=\"k\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">Read<\/span><span class=\"p\">};<\/span>\n<span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"n\">num<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nd\">#[derive(Debug)]<\/span>\n<span class=\"k\">struct<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">kind<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">,<\/span>\n    <span class=\"n\">message<\/span><span class=\"p\">:<\/span> <span class=\"nb\">String<\/span><span class=\"p\">,<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">impl<\/span> <span class=\"nb\">From<\/span><span class=\"o\">&lt;<\/span><span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">for<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">fn<\/span> <span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"n\">error<\/span><span class=\"p\">:<\/span> <span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"k\">Self<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">kind<\/span><span class=\"p\">:<\/span> <span class=\"nn\">String<\/span><span class=\"p\">::<\/span><span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"s\">\"io\"<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">message<\/span><span class=\"p\">:<\/span> <span class=\"n\">error<\/span><span class=\"nf\">.to_string<\/span><span class=\"p\">(),<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">impl<\/span> <span class=\"nb\">From<\/span><span class=\"o\">&lt;<\/span><span class=\"nn\">num<\/span><span class=\"p\">::<\/span><span class=\"n\">ParseIntError<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">for<\/span> <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">fn<\/span> <span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"n\">error<\/span><span class=\"p\">:<\/span> <span class=\"nn\">num<\/span><span class=\"p\">::<\/span><span class=\"n\">ParseIntError<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"k\">Self<\/span> <span class=\"p\">{<\/span>\n        <span class=\"n\">CustomError<\/span> <span class=\"p\">{<\/span>\n            <span class=\"n\">kind<\/span><span class=\"p\">:<\/span> <span class=\"nn\">String<\/span><span class=\"p\">::<\/span><span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"s\">\"parse\"<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">message<\/span><span class=\"p\">:<\/span> <span class=\"n\">error<\/span><span class=\"nf\">.to_string<\/span><span class=\"p\">(),<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"p\">(),<\/span> <span class=\"n\">CustomError<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">let<\/span> <span class=\"k\">mut<\/span> <span class=\"n\">file<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">File<\/span><span class=\"p\">::<\/span><span class=\"nf\">open<\/span><span class=\"p\">(<\/span><span class=\"s\">\"hello_world.txt\"<\/span><span class=\"p\">)<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">let<\/span> <span class=\"k\">mut<\/span> <span class=\"n\">content<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">String<\/span><span class=\"p\">::<\/span><span class=\"nf\">new<\/span><span class=\"p\">();<\/span>\n    <span class=\"n\">file<\/span><span class=\"nf\">.read_to_string<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"k\">mut<\/span> <span class=\"n\">content<\/span><span class=\"p\">)<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">let<\/span> <span class=\"n\">_number<\/span><span class=\"p\">:<\/span> <span class=\"nb\">usize<\/span> <span class=\"o\">=<\/span> <span class=\"n\">content<\/span><span class=\"nf\">.parse<\/span><span class=\"p\">()<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"nf\">Ok<\/span><span class=\"p\">(())<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D8%B1%D8%A7%D8%AA%DA%98%DB%8C_%D9%87%D8%A7%DB%8C_%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87_%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D8%AE%D8%B7%D8%A7%DB%8C\"><\/span>\n<p>  \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u0647\u0627\u06cc \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0637\u0627\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062a\u0648\u0627\u0628\u0639 \u0627\u0646\u0648\u0627\u0639 \u0645\u062e\u062a\u0644\u0641 \u062e\u0637\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u0646\u062f \u060c \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0686\u0647\u0627\u0631 \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u0634\u062a\u0631\u06a9 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<h3><span class=\"ez-toc-section\" id=\"1_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_Box\"><\/span>\n<p>  1. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>Box<dyn error=\"\"\/><\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06cc\u0646 \u0631\u0648\u0634 \u0627\u0646\u0648\u0627\u0639 \u062e\u0637\u0627 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u0634\u06cc\u0621 \u0635\u0641\u062a \u062a\u0628\u062f\u06cc\u0644 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">fs<\/span><span class=\"p\">::<\/span><span class=\"n\">read_to_string<\/span><span class=\"p\">;<\/span>\n<span class=\"k\">use<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">error<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"p\">(),<\/span> <span class=\"nb\">Box<\/span><span class=\"o\">&lt;<\/span><span class=\"k\">dyn<\/span> <span class=\"n\">Error<\/span><span class=\"o\">&gt;&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">let<\/span> <span class=\"n\">html<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">render<\/span><span class=\"p\">()<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"nd\">println!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"{}\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">html<\/span><span class=\"p\">);<\/span>\n    <span class=\"nf\">Ok<\/span><span class=\"p\">(())<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">String<\/span><span class=\"p\">,<\/span> <span class=\"nb\">Box<\/span><span class=\"o\">&lt;<\/span><span class=\"k\">dyn<\/span> <span class=\"n\">Error<\/span><span class=\"o\">&gt;&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">let<\/span> <span class=\"n\">file<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">env<\/span><span class=\"p\">::<\/span><span class=\"nf\">var<\/span><span class=\"p\">(<\/span><span class=\"s\">\"MARKDOWN\"<\/span><span class=\"p\">)<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">let<\/span> <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">read_to_string<\/span><span class=\"p\">(<\/span><span class=\"n\">file<\/span><span class=\"p\">)<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"n\">source<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u062c\u0648\u0627\u0646\u0628 \u0645\u062b\u0628\u062a:<\/strong> \u06a9\u062f \u0631\u0627 \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p><strong>\u0645\u0646\u0641\u06cc \u0647\u0627:<\/strong> \u0627\u0632 \u062f\u0633\u062a \u062f\u0627\u062f\u0646 \u0639\u0645\u0644\u06a9\u0631\u062f \u062c\u0632\u0626\u06cc \u0648 \u0627\u0632 \u062f\u0633\u062a \u062f\u0627\u062f\u0646 \u0628\u0627\u0644\u0642\u0648\u0647 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0646\u0648\u0639 \u062e\u0637\u0627.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"2_%D8%A7%D9%86%D9%88%D8%A7%D8%B9_%D8%AE%D8%B7%D8%A7%DB%8C_%D8%B3%D9%81%D8%A7%D8%B1%D8%B4%DB%8C\"><\/span>\n<p>  2 \u0627\u0646\u0648\u0627\u0639 \u062e\u0637\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062a\u0639\u0631\u06cc\u0641 \u06cc\u06a9 <code>enum<\/code> \u0628\u0631\u0627\u06cc \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 \u0627\u0646\u0648\u0627\u0639 \u062e\u0637\u0627.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"nd\">#[derive(Debug)]<\/span>\n<span class=\"k\">enum<\/span> <span class=\"n\">MyError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">EnvironmentVariableNotFound<\/span><span class=\"p\">,<\/span>\n    <span class=\"nf\">IOError<\/span><span class=\"p\">(<\/span><span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"p\">),<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">impl<\/span> <span class=\"nb\">From<\/span><span class=\"o\">&lt;<\/span><span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">env<\/span><span class=\"p\">::<\/span><span class=\"n\">VarError<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">for<\/span> <span class=\"n\">MyError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">fn<\/span> <span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"n\">_<\/span><span class=\"p\">:<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">env<\/span><span class=\"p\">::<\/span><span class=\"n\">VarError<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"k\">Self<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">Self<\/span><span class=\"p\">::<\/span><span class=\"n\">EnvironmentVariableNotFound<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">impl<\/span> <span class=\"nb\">From<\/span><span class=\"o\">&lt;<\/span><span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"o\">&gt;<\/span> <span class=\"k\">for<\/span> <span class=\"n\">MyError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">fn<\/span> <span class=\"nf\">from<\/span><span class=\"p\">(<\/span><span class=\"n\">value<\/span><span class=\"p\">:<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"p\">)<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"k\">Self<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">Self<\/span><span class=\"p\">::<\/span><span class=\"nf\">IOError<\/span><span class=\"p\">(<\/span><span class=\"n\">value<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><strong>\u0645\u0646\u0641\u06cc \u0647\u0627:<\/strong> Verbose \u0627\u0645\u0627 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0637\u0627\u06cc \u062f\u0642\u06cc\u0642\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"3_%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_thiserror\"><\/span>\n<p>  3. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>thiserror<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062a\u0639\u0627\u0631\u06cc\u0641 \u062e\u0637\u0627\u06cc \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0627 \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0633\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"nd\">#[derive(thiserror::Error,<\/span> <span class=\"nd\">Debug)]<\/span>\n<span class=\"k\">enum<\/span> <span class=\"n\">MyError<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nd\">#[error(<\/span><span class=\"s\">\"Environment variable not found\"<\/span><span class=\"nd\">)]<\/span>\n    <span class=\"nf\">EnvironmentVariableNotFound<\/span><span class=\"p\">(<\/span><span class=\"nd\">#[from]<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">env<\/span><span class=\"p\">::<\/span><span class=\"n\">VarError<\/span><span class=\"p\">),<\/span>\n\n    <span class=\"nd\">#[error(transparent)]<\/span>\n    <span class=\"nf\">IOError<\/span><span class=\"p\">(<\/span><span class=\"nd\">#[from]<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">io<\/span><span class=\"p\">::<\/span><span class=\"n\">Error<\/span><span class=\"p\">),<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u062a\u0639\u0627\u062f\u0644 \u0633\u0627\u062f\u06af\u06cc \u0648 \u06a9\u0646\u062a\u0631\u0644 \u0628\u0633\u06cc\u0627\u0631 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"4_anyhow\"><\/span>\n<p>  4 <code>anyhow<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0631 \u0646\u0648\u0639 \u062e\u0637\u0627 \u0631\u0627 \u0645\u062d\u0627\u0635\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0647 \u0647\u0632\u06cc\u0646\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f \u0631\u0627\u062d\u062a\u06cc \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight rust\"><code><span class=\"k\">use<\/span> <span class=\"nn\">anyhow<\/span><span class=\"p\">::<\/span><span class=\"nb\">Result<\/span><span class=\"p\">;<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">main<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"p\">()<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">let<\/span> <span class=\"n\">html<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">render<\/span><span class=\"p\">()<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"nd\">println!<\/span><span class=\"p\">(<\/span><span class=\"s\">\"{}\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">html<\/span><span class=\"p\">);<\/span>\n    <span class=\"nf\">Ok<\/span><span class=\"p\">(())<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">fn<\/span> <span class=\"nf\">render<\/span><span class=\"p\">()<\/span> <span class=\"k\">-&gt;<\/span> <span class=\"nb\">Result<\/span><span class=\"o\">&lt;<\/span><span class=\"nb\">String<\/span><span class=\"o\">&gt;<\/span> <span class=\"p\">{<\/span>\n    <span class=\"k\">let<\/span> <span class=\"n\">file<\/span> <span class=\"o\">=<\/span> <span class=\"nn\">std<\/span><span class=\"p\">::<\/span><span class=\"nn\">env<\/span><span class=\"p\">::<\/span><span class=\"nf\">var<\/span><span class=\"p\">(<\/span><span class=\"s\">\"MARKDOWN\"<\/span><span class=\"p\">)<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"k\">let<\/span> <span class=\"n\">source<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">read_to_string<\/span><span class=\"p\">(<\/span><span class=\"n\">file<\/span><span class=\"p\">)<\/span><span class=\"o\">?<\/span><span class=\"p\">;<\/span>\n    <span class=\"nf\">Ok<\/span><span class=\"p\">(<\/span><span class=\"n\">source<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%81%DA%A9%D8%A7%D8%B1_%D9%86%D9%87%D8%A7%DB%8C%DB%8C_%D9%81%D9%82%D8%B7_%D8%A7%DB%8C%D9%86_%DA%A9%D8%A7%D8%B1_%D8%B1%D8%A7_%D8%A7%D9%86%D8%AC%D8%A7%D9%85_%D8%AF%D9%87%DB%8C%D8%AF\"><\/span>\n<p>  \u0627\u0641\u06a9\u0627\u0631 \u0646\u0647\u0627\u06cc\u06cc: \u0641\u0642\u0637 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f!<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627 \u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u062c\u0647\u0632 \u0628\u0647 \u0645\u062f\u06cc\u0631\u06cc\u062a \u062e\u0637\u0627 \u062f\u0631 \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u0647\u0633\u062a\u06cc\u062f. \u0627\u06cc\u0646 \u06a9\u0647 \u0622\u06cc\u0627 \u0634\u0645\u0627 \u0633\u0627\u062f\u06af\u06cc \u06cc\u0627 \u06a9\u0646\u062a\u0631\u0644 \u062e\u0648\u0628 \u0631\u0627 \u062a\u0631\u062c\u06cc\u062d \u0645\u06cc \u062f\u0647\u06cc\u062f \u060c \u0645\u06a9\u0627\u0646\u06cc\u0633\u0645 \u0647\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644 \u062e\u0637\u0627\u06cc Rust \u0645\u06cc \u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0627 \u0646\u06cc\u0627\u0632\u0647\u0627\u06cc \u0634\u0645\u0627 \u0633\u0627\u0632\u06af\u0627\u0631 \u0634\u0648\u0646\u062f.<\/p>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%A7_Leapcell_%D8%8C_%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8_%D8%A8%D8%B1%D8%AA%D8%B1_%D8%B4%D9%85%D8%A7_%D8%A8%D8%B1%D8%A7%DB%8C_%D9%85%DB%8C%D8%B2%D8%A8%D8%A7%D9%86%DB%8C_%D9%BE%D8%B1%D9%88%DA%98%D9%87_%D9%87%D8%A7%DB%8C_%D8%B2%D9%86%DA%AF_%D8%B2%D8%AF%DA%AF%DB%8C_%D9%87%D8%B3%D8%AA%DB%8C%D9%85\"><\/span>\n<p>  \u0645\u0627 Leapcell \u060c \u0627\u0646\u062a\u062e\u0627\u0628 \u0628\u0631\u062a\u0631 \u0634\u0645\u0627 \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u0647\u0633\u062a\u06cc\u0645.<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4rouaxu47z5n1ziinm35.png\" alt=\"\u062c\u0647\u0634\" loading=\"lazy\" width=\"800\" height=\"180\" title=\"\"><\/p>\n<p>Leapcell \u0628\u0633\u062a\u0631 \u0633\u0631\u0648\u0631 \u0646\u0633\u0644 \u0628\u0639\u062f\u06cc \u0628\u0631\u0627\u06cc \u0645\u06cc\u0632\u0628\u0627\u0646\u06cc \u0648\u0628 \u060c \u06a9\u0627\u0631\u0647\u0627\u06cc ASYNC \u0648 REDIS \u0627\u0633\u062a:<\/p>\n<p><strong>\u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0686\u0646\u062f \u0632\u0628\u0627\u0646\u06cc<\/strong><\/p>\n<ul>\n<li>\u0628\u0627 node.js \u060c \u067e\u0627\u06cc\u062a\u0648\u0646 \u060c \u0628\u0631\u0648 \u06cc\u0627 \u0632\u0646\u06af \u0632\u062f\u06af\u06cc \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u06cc\u062f.<\/li>\n<\/ul>\n<p><strong>\u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u0646\u0627\u0645\u062d\u062f\u0648\u062f \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0631\u0627\u06cc\u06af\u0627\u0646 \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u062f<\/strong><\/p>\n<ul>\n<li>\u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u067e\u0631\u062f\u0627\u062e\u062a \u06a9\u0646\u06cc\u062f &#8211; \u0628\u062f\u0648\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u060c \u0628\u062f\u0648\u0646 \u0647\u0632\u06cc\u0646\u0647.<\/li>\n<\/ul>\n<p><strong>\u0631\u0627\u0646\u062f\u0645\u0627\u0646 \u0647\u0632\u06cc\u0646\u0647 \u0628\u06cc \u0646\u0638\u06cc\u0631<\/strong><\/p>\n<ul>\n<li>\u067e\u0631\u062f\u0627\u062e\u062a \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0634\u0645\u0627 \u0628\u062f\u0648\u0646 \u0647\u06cc\u0686 \u06af\u0648\u0646\u0647 \u0647\u0632\u06cc\u0646\u0647 \u0628\u06cc\u06a9\u0627\u0631.<\/li>\n<li>\u0645\u062b\u0627\u0644: 25 \u062f\u0644\u0627\u0631 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc 6.94M \u062f\u0631 \u0632\u0645\u0627\u0646 \u067e\u0627\u0633\u062e \u0645\u062a\u0648\u0633\u0637 \u200b\u200b60ms \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<\/ul>\n<p><strong>\u062a\u062c\u0631\u0628\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u0633\u0627\u062f\u0647<\/strong><\/p>\n<ul>\n<li>UI \u0628\u0635\u0631\u06cc \u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0628\u06cc \u062f\u0631\u062f\u0633\u0631.<\/li>\n<li>\u062e\u0637\u0648\u0637 \u0644\u0648\u0644\u0647 CI\/CD \u06a9\u0627\u0645\u0644\u0627\u064b \u062e\u0648\u062f\u06a9\u0627\u0631 \u0648 \u0627\u062f\u063a\u0627\u0645 GITOPS.<\/li>\n<li>\u0645\u0639\u06cc\u0627\u0631\u0647\u0627\u06cc \u0632\u0645\u0627\u0646 \u0648\u0627\u0642\u0639\u06cc \u0648 \u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645 \u0628\u0631\u0627\u06cc \u0628\u06cc\u0646\u0634 \u0647\u0627\u06cc \u0639\u0645\u0644\u06cc.<\/li>\n<\/ul>\n<p><strong>\u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc \u0628\u06cc \u062f\u0631\u062f\u0633\u0631 \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u0628\u0627\u0644\u0627<\/strong><\/p>\n<ul>\n<li>\u0645\u0642\u06cc\u0627\u0633 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0631\u0627\u06cc \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0628\u0627\u0644\u0627 \u0628\u0627 \u0633\u0647\u0648\u0644\u062a.<\/li>\n<li>\u0635\u0641\u0631 \u0633\u0631\u0628\u0627\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc &#8211; \u0641\u0642\u0637 \u0631\u0648\u06cc \u0633\u0627\u062e\u062a\u0645\u0627\u0646 \u062a\u0645\u0631\u06a9\u0632 \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p>\u062f\u0631 \u0627\u0633\u0646\u0627\u062f \u0628\u06cc\u0634\u062a\u0631 \u06a9\u0627\u0648\u0634 \u06a9\u0646\u06cc\u062f!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frw59811nzqyap54krak0.png\" alt=\"Leapcell \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"513\" height=\"120\" title=\"\"><\/p>\n<p>\u0645\u0627 \u0631\u0627 \u062f\u0631 X \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f: LeapCellHQ<\/p>\n<hr\/>\n<p>\u062f\u0631 \u0648\u0628\u0644\u0627\u06af \u0645\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627 \u062f\u0631 \u0632\u0646\u06af \u0628\u0647 \u0647\u0645\u0627\u0646 \u0627\u0646\u062f\u0627\u0632\u0647 \u0633\u0627\u062f\u0647 \u0646\u06cc\u0633\u062a Result \u0648\u062a Option\u0628\u0634\u0631 \u0628\u0631\u0627\u06cc \u0645\u0628\u062a\u062f\u06cc\u0627\u0646 \u060c \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u06cc Rust \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u06a9\u0627\u0645\u0644\u0627\u064b \u062f\u0648\u0633\u062a\u0627\u0646\u0647 \u0628\u0627\u0634\u062f. \u0628\u0639\u062f \u0627\u0632 \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u062a\u0644\u0627\u0634 \u0628\u0627 \u0622\u0646 \u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u062f\u0627\u0646\u0634 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u0646 \u0645\u0648\u0636\u0648\u0639 \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u06a9\u0646\u0645. \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0627\u0632 \u062f\u0648 \u0628\u062e\u0634 \u0627\u0635\u0644\u06cc \u062a\u0634\u06a9\u06cc\u0644 \u0634\u062f\u0647 \u0627\u0633\u062a: \u0631\u0648\u0634\u0647\u0627\u06cc \u0631\u0633\u0645\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":101436,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/media2.dev.to\/dynamic\/image\/width=1000,height=500,fit=cover,gravity=auto,format=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flu8vmp2pc33kselpxdvb.png","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-101435","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/101435","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=101435"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/101435\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/101436"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=101435"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=101435"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=101435"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}