[{"data":1,"prerenderedAt":3709},["ShallowReactive",2],{"navigation_docs_en":3,"-en-getting-started-quick-start":173,"-en-getting-started-quick-start-surround":3704},[4,30,109,153],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fen\u002Fgetting-started","en\u002F01.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fen\u002Fgetting-started\u002Fintroduction","en\u002F01.getting-started\u002F1.introduction","i-ph-rocket",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fen\u002Fgetting-started\u002Finstallation","en\u002F01.getting-started\u002F2.installation","i-ph-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fen\u002Fgetting-started\u002Fquick-start","en\u002F01.getting-started\u002F3.quick-start","i-ph-play",{"title":25,"path":26,"stem":27,"icon":28},"Live Demo","\u002Fen\u002Fgetting-started\u002Flive-demo","en\u002F01.getting-started\u002F4.live-demo","i-ph-sparkle",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"How To","\u002Fen\u002Fhow-to","en\u002F02.how-to",[35,40,45,50,55,60,65,70,75,79,84,89,94,99,104],{"title":36,"path":37,"stem":38,"icon":39},"Use Rust","\u002Fen\u002Fhow-to\u002Fuse-rust","en\u002F02.how-to\u002F00.use-rust","simple-icons-rust",{"title":41,"path":42,"stem":43,"icon":44},"Use .NET \u002F C#","\u002Fen\u002Fhow-to\u002Fuse-csharp","en\u002F02.how-to\u002F01.use-csharp","simple-icons-dotnet",{"title":46,"path":47,"stem":48,"icon":49},"Use React Native","\u002Fen\u002Fhow-to\u002Fuse-react-native","en\u002F02.how-to\u002F02.use-react-native","simple-icons-react",{"title":51,"path":52,"stem":53,"icon":54},"Use iOS (Swift)","\u002Fen\u002Fhow-to\u002Fuse-ios-swift","en\u002F02.how-to\u002F03.use-ios-swift","simple-icons-apple",{"title":56,"path":57,"stem":58,"icon":59},"Use Android (Kotlin)","\u002Fen\u002Fhow-to\u002Fuse-android-kotlin","en\u002F02.how-to\u002F04.use-android-kotlin","simple-icons-android",{"title":61,"path":62,"stem":63,"icon":64},"Use C FFI","\u002Fen\u002Fhow-to\u002Fuse-c-ffi","en\u002F02.how-to\u002F05.use-c-ffi","simple-icons-c",{"title":66,"path":67,"stem":68,"icon":69},"Use CLI","\u002Fen\u002Fhow-to\u002Fuse-cli","en\u002F02.how-to\u002F06.use-cli","simple-icons-gnubash",{"title":71,"path":72,"stem":73,"icon":74},"Use Web","\u002Fen\u002Fhow-to\u002Fuse-web","en\u002F02.how-to\u002F07.use-web","simple-icons-javascript",{"title":76,"path":77,"stem":78,"icon":49},"Use React","\u002Fen\u002Fhow-to\u002Fuse-react","en\u002F02.how-to\u002F08.use-react",{"title":80,"path":81,"stem":82,"icon":83},"Use Node.js","\u002Fen\u002Fhow-to\u002Fuse-node","en\u002F02.how-to\u002F09.use-node","simple-icons-nodedotjs",{"title":85,"path":86,"stem":87,"icon":88},"Use Python","\u002Fen\u002Fhow-to\u002Fuse-python","en\u002F02.how-to\u002F10.use-python","simple-icons-python",{"title":90,"path":91,"stem":92,"icon":93},"Use Golang","\u002Fen\u002Fhow-to\u002Fuse-golang","en\u002F02.how-to\u002F11.use-golang","simple-icons-go",{"title":95,"path":96,"stem":97,"icon":98},"Use Java & JVM","\u002Fen\u002Fhow-to\u002Fuse-java","en\u002F02.how-to\u002F12.use-java","simple-icons-openjdk",{"title":100,"path":101,"stem":102,"icon":103},"Use Flutter & Dart","\u002Fen\u002Fhow-to\u002Fuse-flutter","en\u002F02.how-to\u002F13.use-flutter","simple-icons-flutter",{"title":105,"path":106,"stem":107,"icon":108},"Use Decoded RGB Input","\u002Fen\u002Fhow-to\u002Fuse-decoded-rgb","en\u002F02.how-to\u002F14.use-decoded-rgb","lucide-image",{"title":110,"path":111,"stem":112,"children":113,"page":29},"Advance Guide","\u002Fen\u002Fadvance-guide","en\u002F03.advance-guide",[114,119,124,129,134,139,144,149],{"title":115,"path":116,"stem":117,"icon":118},"Models & Tiers","\u002Fen\u002Fadvance-guide\u002Fmodels-and-tiers","en\u002F03.advance-guide\u002F01.models-and-tiers","i-ph-cube",{"title":120,"path":121,"stem":122,"icon":123},"Multilingual OCR","\u002Fen\u002Fadvance-guide\u002Fmultilingual-ocr","en\u002F03.advance-guide\u002F02.multilingual-ocr","i-ph-translate",{"title":125,"path":126,"stem":127,"icon":128},"Spatial Layout Reconstruction","\u002Fen\u002Fadvance-guide\u002Fspatial-layout-reconstruction","en\u002F03.advance-guide\u002F03.spatial-layout-reconstruction","i-ph-layout",{"title":130,"path":131,"stem":132,"icon":133},"Image Preprocessing & Tuning","\u002Fen\u002Fadvance-guide\u002Fimage-preprocessing-and-tuning","en\u002F03.advance-guide\u002F04.image-preprocessing-and-tuning","i-ph-sliders",{"title":135,"path":136,"stem":137,"icon":138},"Classification & Orientation","\u002Fen\u002Fadvance-guide\u002Fclassification-and-orientation","en\u002F03.advance-guide\u002F05.classification-and-orientation","i-ph-arrows-clockwise",{"title":140,"path":141,"stem":142,"icon":143},"Performance & Benchmarks","\u002Fen\u002Fadvance-guide\u002Fperformance-and-benchmarks","en\u002F03.advance-guide\u002F06.performance-and-benchmarks","i-ph-chart-line-up",{"title":145,"path":146,"stem":147,"icon":148},"Troubleshooting","\u002Fen\u002Fadvance-guide\u002Ftroubleshooting","en\u002F03.advance-guide\u002F07.troubleshooting","i-ph-wrench",{"title":150,"path":151,"stem":152,"icon":138},"v0.2 to v0.3","\u002Fen\u002Fadvance-guide\u002Fmigration-guide","en\u002F03.advance-guide\u002F08.migration-guide",{"title":154,"path":155,"stem":156,"children":157,"page":29},"Api Reference","\u002Fen\u002Fapi-reference","en\u002F04.api-reference",[158,163,168],{"title":159,"path":160,"stem":161,"icon":162},"InitializeConfig","\u002Fen\u002Fapi-reference\u002Finitialize-config","en\u002F04.api-reference\u002F01.initialize-config","i-ph-code-block",{"title":164,"path":165,"stem":166,"icon":167},"OcrRunOptions","\u002Fen\u002Fapi-reference\u002Focr-run-options","en\u002F04.api-reference\u002F02.ocr-run-options","i-ph-faders",{"title":169,"path":170,"stem":171,"icon":172},"TextResult & Output Modes","\u002Fen\u002Fapi-reference\u002Ftext-result-and-output","en\u002F04.api-reference\u002F03.text-result-and-output","i-ph-textbox",{"id":174,"title":20,"body":175,"description":3696,"extension":3697,"links":3698,"meta":3699,"navigation":3700,"path":21,"seo":3701,"stem":22,"__hash__":3703},"docs_en\u002Fen\u002F01.getting-started\u002F3.quick-start.md",{"type":176,"value":177,"toc":3682},"minimark",[178,182,187,195,205,208,212,1059,1061,1065,1411,1413,1417,1511,1513,1517,1644,1646,1650,1998,2000,2004,2087,2089,2093,2533,2535,2539,3079,3081,3085,3359,3361,3365,3563,3565,3569,3678],[179,180,181],"p",{},"Get up and running with RustO! across different languages with these concise, copy-pasteable examples.",[183,184,186],"h2",{"id":185},"sample-document-image","Sample Document Image",[179,188,189,190,194],{},"Assume we have an input receipt image ",[191,192,193],"code",{},"receipt.jpg",":",[196,197,203],"pre",{"className":198,"code":200,"language":201,"meta":202},[199],"language-text","┌────────────────────────────────────────┐\n│             COFFEE SHOP                │\n│ 2026-08-20                     12:30   │\n│                                        │\n│ Item                  Qty       Price  │\n│ ────────────────────────────────────── │\n│ Espresso Double         1       $4.50  │\n│ Croissant               2       $7.00  │\n│ Flat White              1       $5.00  │\n│ ────────────────────────────────────── │\n│ Total                          $16.50  │\n└────────────────────────────────────────┘\n","text","",[191,204,200],{"__ignoreMap":202},[206,207],"hr",{},[183,209,211],{"id":210},"_1-rust","1. Rust",[196,213,217],{"className":214,"code":215,"language":216,"meta":202,"style":202},"language-rust shiki shiki-themes material-theme-lighter github-light github-dark monokai","use rusto::{\n    DetectTextResult, ImageSource, InitializeConfig, OcrRunOptions,\n    OutputGranularity, RustO,\n};\n\nfn main() -> Result\u003C(), Box\u003Cdyn std::error::Error>> {\n    \u002F\u002F 1. Initialize engine with PP-OCRv6 default preset\n    let config = InitializeConfig::ppv6(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\");\n    let mut ocr = RustO::initialize(config)?;\n\n    \u002F\u002F 2. Run structured line OCR\n    let image = ImageSource::Path(\"receipt.jpg\".into());\n    let mut options = OcrRunOptions::default();\n    options.output = OutputGranularity::Lines;\n\n    let result = ocr.detect_text(&image, &options)?;\n\n    match result {\n        DetectTextResult::Structured(lines) => {\n            println!(\"--- Structured Line Results ({} lines) ---\", lines.len());\n            for line in lines {\n                println!(\n                    \"[{:5.1}, {:5.1}, {:5.1}, {:5.1}] (Score: {:.2}) {}\",\n                    line.frame.left, line.frame.top, line.frame.width, line.frame.height,\n                    line.score, line.text\n                );\n            }\n        }\n        DetectTextResult::Spatial(text) => println!(\"{text}\"),\n    }\n\n    \u002F\u002F 3. Run spatial layout reconstruction OCR\n    options.output = OutputGranularity::Spatial;\n    options.line_y_threshold = Some(0.5);\n    options.word_x_threshold = Some(0.4);\n\n    if let DetectTextResult::Spatial(spatial_text) = ocr.detect_text(&image, &options)? {\n        println!(\"\\n--- Reconstructed Spatial Layout ---\\n{spatial_text}\");\n    }\n\n    Ok(())\n}\n","rust",[191,218,219,240,265,278,284,291,342,349,404,439,444,450,484,506,529,534,574,579,590,613,646,663,672,733,791,810,816,822,828,862,868,873,879,898,927,952,957,1007,1034,1039,1044,1053],{"__ignoreMap":202},[220,221,224,228,232,236],"span",{"class":222,"line":223},"line",1,[220,225,227],{"class":226},"shWJe","use",[220,229,231],{"class":230},"sKvfc"," rusto",[220,233,235],{"class":234},"sGXK2","::",[220,237,239],{"class":238},"swvn1","{\n",[220,241,243,246,249,252,254,257,259,262],{"class":222,"line":242},2,[220,244,245],{"class":230},"    DetectTextResult",[220,247,248],{"class":238},",",[220,250,251],{"class":230}," ImageSource",[220,253,248],{"class":238},[220,255,256],{"class":230}," InitializeConfig",[220,258,248],{"class":238},[220,260,261],{"class":230}," OcrRunOptions",[220,263,264],{"class":238},",\n",[220,266,268,271,273,276],{"class":222,"line":267},3,[220,269,270],{"class":230},"    OutputGranularity",[220,272,248],{"class":238},[220,274,275],{"class":230}," RustO",[220,277,264],{"class":238},[220,279,281],{"class":222,"line":280},4,[220,282,283],{"class":238},"};\n",[220,285,287],{"class":222,"line":286},5,[220,288,290],{"emptyLinePlaceholder":289},true,"\n",[220,292,294,297,301,304,307,310,313,316,319,322,326,328,331,333,336,339],{"class":222,"line":293},6,[220,295,296],{"class":226},"fn",[220,298,300],{"class":299},"sD0ED"," main",[220,302,303],{"class":238},"()",[220,305,306],{"class":234}," ->",[220,308,309],{"class":230}," Result",[220,311,312],{"class":238},"\u003C(),",[220,314,315],{"class":230}," Box",[220,317,318],{"class":238},"\u003C",[220,320,321],{"class":226},"dyn",[220,323,325],{"class":324},"ss--_"," std",[220,327,235],{"class":234},[220,329,330],{"class":324},"error",[220,332,235],{"class":234},[220,334,335],{"class":230},"Error",[220,337,338],{"class":238},">>",[220,340,341],{"class":238}," {\n",[220,343,345],{"class":222,"line":344},7,[220,346,348],{"class":347},"ss7Ak","    \u002F\u002F 1. Initialize engine with PP-OCRv6 default preset\n",[220,350,352,356,359,362,364,366,369,372,376,380,382,384,387,390,392,394,396,399,401],{"class":222,"line":351},8,[220,353,355],{"class":354},"srJo8","    let",[220,357,358],{"class":324}," config ",[220,360,361],{"class":234},"=",[220,363,256],{"class":230},[220,365,235],{"class":234},[220,367,368],{"class":299},"ppv6",[220,370,371],{"class":238},"(",[220,373,375],{"class":374},"siCPE","\"",[220,377,379],{"class":378},"sLACW","models\u002Fdet.rten",[220,381,375],{"class":374},[220,383,248],{"class":238},[220,385,386],{"class":374}," \"",[220,388,389],{"class":378},"models\u002Frec.rten",[220,391,375],{"class":374},[220,393,248],{"class":238},[220,395,386],{"class":374},[220,397,398],{"class":378},"models\u002Fdict.txt",[220,400,375],{"class":374},[220,402,403],{"class":238},");\n",[220,405,407,409,413,416,418,420,422,425,427,430,433,436],{"class":222,"line":406},9,[220,408,355],{"class":354},[220,410,412],{"class":411},"sTNss"," mut",[220,414,415],{"class":324}," ocr ",[220,417,361],{"class":234},[220,419,275],{"class":230},[220,421,235],{"class":234},[220,423,424],{"class":299},"initialize",[220,426,371],{"class":238},[220,428,429],{"class":324},"config",[220,431,432],{"class":238},")",[220,434,435],{"class":234},"?",[220,437,438],{"class":238},";\n",[220,440,442],{"class":222,"line":441},10,[220,443,290],{"emptyLinePlaceholder":289},[220,445,447],{"class":222,"line":446},11,[220,448,449],{"class":347},"    \u002F\u002F 2. Run structured line OCR\n",[220,451,453,455,458,460,462,464,467,469,471,473,475,478,481],{"class":222,"line":452},12,[220,454,355],{"class":354},[220,456,457],{"class":324}," image ",[220,459,361],{"class":234},[220,461,251],{"class":230},[220,463,235],{"class":234},[220,465,466],{"class":299},"Path",[220,468,371],{"class":238},[220,470,375],{"class":374},[220,472,193],{"class":378},[220,474,375],{"class":374},[220,476,477],{"class":234},".",[220,479,480],{"class":299},"into",[220,482,483],{"class":238},"());\n",[220,485,487,489,491,494,496,498,500,503],{"class":222,"line":486},13,[220,488,355],{"class":354},[220,490,412],{"class":411},[220,492,493],{"class":324}," options ",[220,495,361],{"class":234},[220,497,261],{"class":230},[220,499,235],{"class":234},[220,501,502],{"class":299},"default",[220,504,505],{"class":238},"();\n",[220,507,509,512,514,517,519,522,524,527],{"class":222,"line":508},14,[220,510,511],{"class":324},"    options",[220,513,477],{"class":234},[220,515,516],{"class":324},"output ",[220,518,361],{"class":234},[220,520,521],{"class":230}," OutputGranularity",[220,523,235],{"class":234},[220,525,526],{"class":230},"Lines",[220,528,438],{"class":238},[220,530,532],{"class":222,"line":531},15,[220,533,290],{"emptyLinePlaceholder":289},[220,535,537,539,542,544,547,549,552,554,557,560,562,565,568,570,572],{"class":222,"line":536},16,[220,538,355],{"class":354},[220,540,541],{"class":324}," result ",[220,543,361],{"class":234},[220,545,546],{"class":324}," ocr",[220,548,477],{"class":234},[220,550,551],{"class":299},"detect_text",[220,553,371],{"class":238},[220,555,556],{"class":234},"&",[220,558,559],{"class":324},"image",[220,561,248],{"class":238},[220,563,564],{"class":234}," &",[220,566,567],{"class":324},"options",[220,569,432],{"class":238},[220,571,435],{"class":234},[220,573,438],{"class":238},[220,575,577],{"class":222,"line":576},17,[220,578,290],{"emptyLinePlaceholder":289},[220,580,582,586,588],{"class":222,"line":581},18,[220,583,585],{"class":584},"sRxSC","    match",[220,587,541],{"class":324},[220,589,239],{"class":238},[220,591,593,596,598,601,603,606,608,611],{"class":222,"line":592},19,[220,594,595],{"class":230},"        DetectTextResult",[220,597,235],{"class":234},[220,599,600],{"class":299},"Structured",[220,602,371],{"class":238},[220,604,605],{"class":324},"lines",[220,607,432],{"class":238},[220,609,610],{"class":234}," =>",[220,612,341],{"class":238},[220,614,616,619,621,623,626,629,632,634,636,639,641,644],{"class":222,"line":615},20,[220,617,618],{"class":299},"            println!",[220,620,371],{"class":238},[220,622,375],{"class":374},[220,624,625],{"class":378},"--- Structured Line Results (",[220,627,628],{"class":374},"{}",[220,630,631],{"class":378}," lines) ---",[220,633,375],{"class":374},[220,635,248],{"class":238},[220,637,638],{"class":324}," lines",[220,640,477],{"class":234},[220,642,643],{"class":299},"len",[220,645,483],{"class":238},[220,647,649,652,655,658,661],{"class":222,"line":648},21,[220,650,651],{"class":584},"            for",[220,653,654],{"class":324}," line ",[220,656,657],{"class":226},"in",[220,659,660],{"class":324}," lines ",[220,662,239],{"class":238},[220,664,666,669],{"class":222,"line":665},22,[220,667,668],{"class":299},"                println!",[220,670,671],{"class":238},"(\n",[220,673,675,678,681,684,687,690,693,695,697,699,701,703,705,707,709,711,713,715,718,720,723,725,728,731],{"class":222,"line":674},23,[220,676,677],{"class":374},"                    \"",[220,679,680],{"class":378},"[",[220,682,683],{"class":374},"{",[220,685,686],{"class":378},":5.1",[220,688,689],{"class":374},"}",[220,691,692],{"class":378},", ",[220,694,683],{"class":374},[220,696,686],{"class":378},[220,698,689],{"class":374},[220,700,692],{"class":378},[220,702,683],{"class":374},[220,704,686],{"class":378},[220,706,689],{"class":374},[220,708,692],{"class":378},[220,710,683],{"class":374},[220,712,686],{"class":378},[220,714,689],{"class":374},[220,716,717],{"class":378},"] (Score: ",[220,719,683],{"class":374},[220,721,722],{"class":378},":.2",[220,724,689],{"class":374},[220,726,727],{"class":378},") ",[220,729,730],{"class":374},"{}\"",[220,732,264],{"class":238},[220,734,736,739,741,744,746,749,751,754,756,758,760,763,765,767,769,771,773,776,778,780,782,784,786,789],{"class":222,"line":735},24,[220,737,738],{"class":324},"                    line",[220,740,477],{"class":234},[220,742,743],{"class":324},"frame",[220,745,477],{"class":234},[220,747,748],{"class":324},"left",[220,750,248],{"class":238},[220,752,753],{"class":324}," line",[220,755,477],{"class":234},[220,757,743],{"class":324},[220,759,477],{"class":234},[220,761,762],{"class":324},"top",[220,764,248],{"class":238},[220,766,753],{"class":324},[220,768,477],{"class":234},[220,770,743],{"class":324},[220,772,477],{"class":234},[220,774,775],{"class":324},"width",[220,777,248],{"class":238},[220,779,753],{"class":324},[220,781,477],{"class":234},[220,783,743],{"class":324},[220,785,477],{"class":234},[220,787,788],{"class":324},"height",[220,790,264],{"class":238},[220,792,794,796,798,801,803,805,807],{"class":222,"line":793},25,[220,795,738],{"class":324},[220,797,477],{"class":234},[220,799,800],{"class":324},"score",[220,802,248],{"class":238},[220,804,753],{"class":324},[220,806,477],{"class":234},[220,808,809],{"class":324},"text\n",[220,811,813],{"class":222,"line":812},26,[220,814,815],{"class":238},"                );\n",[220,817,819],{"class":222,"line":818},27,[220,820,821],{"class":238},"            }\n",[220,823,825],{"class":222,"line":824},28,[220,826,827],{"class":238},"        }\n",[220,829,831,833,835,838,840,842,844,846,849,851,854,856,859],{"class":222,"line":830},29,[220,832,595],{"class":230},[220,834,235],{"class":234},[220,836,837],{"class":299},"Spatial",[220,839,371],{"class":238},[220,841,201],{"class":324},[220,843,432],{"class":238},[220,845,610],{"class":234},[220,847,848],{"class":299}," println!",[220,850,371],{"class":238},[220,852,853],{"class":374},"\"{",[220,855,201],{"class":378},[220,857,858],{"class":374},"}\"",[220,860,861],{"class":238},"),\n",[220,863,865],{"class":222,"line":864},30,[220,866,867],{"class":238},"    }\n",[220,869,871],{"class":222,"line":870},31,[220,872,290],{"emptyLinePlaceholder":289},[220,874,876],{"class":222,"line":875},32,[220,877,878],{"class":347},"    \u002F\u002F 3. Run spatial layout reconstruction OCR\n",[220,880,882,884,886,888,890,892,894,896],{"class":222,"line":881},33,[220,883,511],{"class":324},[220,885,477],{"class":234},[220,887,516],{"class":324},[220,889,361],{"class":234},[220,891,521],{"class":230},[220,893,235],{"class":234},[220,895,837],{"class":230},[220,897,438],{"class":238},[220,899,901,903,905,908,910,913,915,919,922,925],{"class":222,"line":900},34,[220,902,511],{"class":324},[220,904,477],{"class":234},[220,906,907],{"class":324},"line_y_threshold ",[220,909,361],{"class":234},[220,911,912],{"class":230}," Some",[220,914,371],{"class":238},[220,916,918],{"class":917},"sYThS","0",[220,920,477],{"class":921},"sMTiH",[220,923,924],{"class":917},"5",[220,926,403],{"class":238},[220,928,930,932,934,937,939,941,943,945,947,950],{"class":222,"line":929},35,[220,931,511],{"class":324},[220,933,477],{"class":234},[220,935,936],{"class":324},"word_x_threshold ",[220,938,361],{"class":234},[220,940,912],{"class":230},[220,942,371],{"class":238},[220,944,918],{"class":917},[220,946,477],{"class":921},[220,948,949],{"class":917},"4",[220,951,403],{"class":238},[220,953,955],{"class":222,"line":954},36,[220,956,290],{"emptyLinePlaceholder":289},[220,958,960,963,966,969,971,973,975,978,980,983,985,987,989,991,993,995,997,999,1001,1003,1005],{"class":222,"line":959},37,[220,961,962],{"class":584},"    if",[220,964,965],{"class":354}," let",[220,967,968],{"class":230}," DetectTextResult",[220,970,235],{"class":234},[220,972,837],{"class":299},[220,974,371],{"class":238},[220,976,977],{"class":324},"spatial_text",[220,979,432],{"class":238},[220,981,982],{"class":234}," =",[220,984,546],{"class":324},[220,986,477],{"class":234},[220,988,551],{"class":299},[220,990,371],{"class":238},[220,992,556],{"class":234},[220,994,559],{"class":324},[220,996,248],{"class":238},[220,998,564],{"class":234},[220,1000,567],{"class":324},[220,1002,432],{"class":238},[220,1004,435],{"class":234},[220,1006,341],{"class":238},[220,1008,1010,1013,1015,1017,1021,1024,1026,1028,1030,1032],{"class":222,"line":1009},38,[220,1011,1012],{"class":299},"        println!",[220,1014,371],{"class":238},[220,1016,375],{"class":374},[220,1018,1020],{"class":1019},"sQeA1","\\n",[220,1022,1023],{"class":378},"--- Reconstructed Spatial Layout ---",[220,1025,1020],{"class":1019},[220,1027,683],{"class":374},[220,1029,977],{"class":378},[220,1031,858],{"class":374},[220,1033,403],{"class":238},[220,1035,1037],{"class":222,"line":1036},39,[220,1038,867],{"class":238},[220,1040,1042],{"class":222,"line":1041},40,[220,1043,290],{"emptyLinePlaceholder":289},[220,1045,1047,1050],{"class":222,"line":1046},41,[220,1048,1049],{"class":230},"    Ok",[220,1051,1052],{"class":238},"(())\n",[220,1054,1056],{"class":222,"line":1055},42,[220,1057,1058],{"class":238},"}\n",[206,1060],{},[183,1062,1064],{"id":1063},"_2-nodejs-typescript-javascript","2. Node.js (TypeScript \u002F JavaScript)",[196,1066,1070],{"className":1067,"code":1068,"language":1069,"meta":202,"style":202},"language-typescript shiki shiki-themes material-theme-lighter github-light github-dark monokai","import { RustO } from '@rustors\u002Fnode';\n\nconst config = {\n  detection: { model_path: 'models\u002Fdet.rten' },\n  recognition: { model_path: 'models\u002Frec.rten', dict_path: 'models\u002Fdict.txt' }\n};\n\nconst engine = new RustO(JSON.stringify(config));\n\n\u002F\u002F Structured line recognition\nconst lines = engine.detectTextFile('receipt.jpg', JSON.stringify({}));\nfor (const line of lines) {\n  console.log(`[${line.score.toFixed(2)}] ${line.text}`);\n}\n\n\u002F\u002F Spatial layout reconstruction\nconst spatialText = engine.detectTextFileSpatial('receipt.jpg', JSON.stringify({}));\nconsole.log(spatialText);\n","typescript",[191,1071,1072,1099,1103,1116,1140,1175,1179,1183,1212,1216,1221,1262,1282,1344,1348,1352,1357,1397],{"__ignoreMap":202},[220,1073,1074,1077,1080,1082,1085,1088,1091,1094,1097],{"class":222,"line":223},[220,1075,1076],{"class":584},"import",[220,1078,1079],{"class":238}," {",[220,1081,275],{"class":324},[220,1083,1084],{"class":238}," }",[220,1086,1087],{"class":584}," from",[220,1089,1090],{"class":374}," '",[220,1092,1093],{"class":378},"@rustors\u002Fnode",[220,1095,1096],{"class":374},"'",[220,1098,438],{"class":238},[220,1100,1101],{"class":222,"line":242},[220,1102,290],{"emptyLinePlaceholder":289},[220,1104,1105,1108,1112,1114],{"class":222,"line":267},[220,1106,1107],{"class":354},"const",[220,1109,1111],{"class":1110},"s91G_"," config",[220,1113,982],{"class":234},[220,1115,341],{"class":238},[220,1117,1118,1122,1124,1126,1129,1131,1133,1135,1137],{"class":222,"line":280},[220,1119,1121],{"class":1120},"squCx","  detection",[220,1123,194],{"class":238},[220,1125,1079],{"class":238},[220,1127,1128],{"class":1120}," model_path",[220,1130,194],{"class":238},[220,1132,1090],{"class":374},[220,1134,379],{"class":378},[220,1136,1096],{"class":374},[220,1138,1139],{"class":238}," },\n",[220,1141,1142,1145,1147,1149,1151,1153,1155,1157,1159,1161,1164,1166,1168,1170,1172],{"class":222,"line":286},[220,1143,1144],{"class":1120},"  recognition",[220,1146,194],{"class":238},[220,1148,1079],{"class":238},[220,1150,1128],{"class":1120},[220,1152,194],{"class":238},[220,1154,1090],{"class":374},[220,1156,389],{"class":378},[220,1158,1096],{"class":374},[220,1160,248],{"class":238},[220,1162,1163],{"class":1120}," dict_path",[220,1165,194],{"class":238},[220,1167,1090],{"class":374},[220,1169,398],{"class":378},[220,1171,1096],{"class":374},[220,1173,1174],{"class":238}," }\n",[220,1176,1177],{"class":222,"line":293},[220,1178,283],{"class":238},[220,1180,1181],{"class":222,"line":344},[220,1182,290],{"emptyLinePlaceholder":289},[220,1184,1185,1187,1190,1192,1195,1197,1199,1202,1204,1207,1210],{"class":222,"line":351},[220,1186,1107],{"class":354},[220,1188,1189],{"class":1110}," engine",[220,1191,982],{"class":234},[220,1193,1194],{"class":234}," new",[220,1196,275],{"class":299},[220,1198,371],{"class":324},[220,1200,1201],{"class":1110},"JSON",[220,1203,477],{"class":238},[220,1205,1206],{"class":299},"stringify",[220,1208,1209],{"class":324},"(config))",[220,1211,438],{"class":238},[220,1213,1214],{"class":222,"line":406},[220,1215,290],{"emptyLinePlaceholder":289},[220,1217,1218],{"class":222,"line":441},[220,1219,1220],{"class":347},"\u002F\u002F Structured line recognition\n",[220,1222,1223,1225,1227,1229,1231,1233,1236,1238,1240,1242,1244,1246,1249,1251,1253,1255,1257,1260],{"class":222,"line":446},[220,1224,1107],{"class":354},[220,1226,638],{"class":1110},[220,1228,982],{"class":234},[220,1230,1189],{"class":324},[220,1232,477],{"class":238},[220,1234,1235],{"class":299},"detectTextFile",[220,1237,371],{"class":324},[220,1239,1096],{"class":374},[220,1241,193],{"class":378},[220,1243,1096],{"class":374},[220,1245,248],{"class":238},[220,1247,1248],{"class":1110}," JSON",[220,1250,477],{"class":238},[220,1252,1206],{"class":299},[220,1254,371],{"class":324},[220,1256,628],{"class":238},[220,1258,1259],{"class":324},"))",[220,1261,438],{"class":238},[220,1263,1264,1267,1270,1272,1274,1277,1280],{"class":222,"line":452},[220,1265,1266],{"class":584},"for",[220,1268,1269],{"class":324}," (",[220,1271,1107],{"class":354},[220,1273,753],{"class":1110},[220,1275,1276],{"class":234}," of",[220,1278,1279],{"class":324}," lines) ",[220,1281,239],{"class":238},[220,1283,1284,1287,1289,1292,1294,1297,1299,1303,1305,1308,1310,1312,1315,1318,1321,1323,1325,1328,1330,1332,1334,1336,1338,1340,1342],{"class":222,"line":486},[220,1285,1286],{"class":324},"  console",[220,1288,477],{"class":238},[220,1290,1291],{"class":299},"log",[220,1293,371],{"class":1120},[220,1295,1296],{"class":374},"`",[220,1298,680],{"class":378},[220,1300,1302],{"class":1301},"slF1C","${",[220,1304,222],{"class":324},[220,1306,477],{"class":1307},"s00De",[220,1309,800],{"class":324},[220,1311,477],{"class":1307},[220,1313,1314],{"class":299},"toFixed",[220,1316,371],{"class":1317},"s-euU",[220,1319,1320],{"class":917},"2",[220,1322,432],{"class":1317},[220,1324,689],{"class":1301},[220,1326,1327],{"class":378},"] ",[220,1329,1302],{"class":1301},[220,1331,222],{"class":324},[220,1333,477],{"class":1307},[220,1335,201],{"class":324},[220,1337,689],{"class":1301},[220,1339,1296],{"class":374},[220,1341,432],{"class":1120},[220,1343,438],{"class":238},[220,1345,1346],{"class":222,"line":508},[220,1347,1058],{"class":238},[220,1349,1350],{"class":222,"line":531},[220,1351,290],{"emptyLinePlaceholder":289},[220,1353,1354],{"class":222,"line":536},[220,1355,1356],{"class":347},"\u002F\u002F Spatial layout reconstruction\n",[220,1358,1359,1361,1364,1366,1368,1370,1373,1375,1377,1379,1381,1383,1385,1387,1389,1391,1393,1395],{"class":222,"line":576},[220,1360,1107],{"class":354},[220,1362,1363],{"class":1110}," spatialText",[220,1365,982],{"class":234},[220,1367,1189],{"class":324},[220,1369,477],{"class":238},[220,1371,1372],{"class":299},"detectTextFileSpatial",[220,1374,371],{"class":324},[220,1376,1096],{"class":374},[220,1378,193],{"class":378},[220,1380,1096],{"class":374},[220,1382,248],{"class":238},[220,1384,1248],{"class":1110},[220,1386,477],{"class":238},[220,1388,1206],{"class":299},[220,1390,371],{"class":324},[220,1392,628],{"class":238},[220,1394,1259],{"class":324},[220,1396,438],{"class":238},[220,1398,1399,1402,1404,1406,1409],{"class":222,"line":581},[220,1400,1401],{"class":324},"console",[220,1403,477],{"class":238},[220,1405,1291],{"class":299},[220,1407,1408],{"class":324},"(spatialText)",[220,1410,438],{"class":238},[206,1412],{},[183,1414,1416],{"id":1415},"_3-python","3. Python",[196,1418,1422],{"className":1419,"code":1420,"language":1421,"meta":202,"style":202},"language-python shiki shiki-themes material-theme-lighter github-light github-dark monokai","from rusto import RustO, InitializeConfig, OcrRunOptions, ImageSource, OutputGranularity\n\n# Initialize engine with PP-OCRv6 preset\nconfig = InitializeConfig.ppv6(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\")\nengine = RustO.initialize(config)\n\n# Structured line recognition\noptions = OcrRunOptions(output=OutputGranularity.LINES)\nresult = engine.detect_text(ImageSource.PATH(\"receipt.jpg\"), options)\nif result.is_STRUCTURED():\n    for line in result.results:\n        print(f\"[{line.score:.2f}] {line.text}\")\n\n# Spatial layout reconstruction\nspatial_options = OcrRunOptions(output=OutputGranularity.SPATIAL)\nspatial_result = engine.detect_text(ImageSource.PATH(\"receipt.jpg\"), spatial_options)\nif spatial_result.is_SPATIAL():\n    print(spatial_result.text)\n","python",[191,1423,1424,1429,1433,1438,1443,1448,1452,1457,1462,1467,1472,1477,1482,1486,1491,1496,1501,1506],{"__ignoreMap":202},[220,1425,1426],{"class":222,"line":223},[220,1427,1428],{},"from rusto import RustO, InitializeConfig, OcrRunOptions, ImageSource, OutputGranularity\n",[220,1430,1431],{"class":222,"line":242},[220,1432,290],{"emptyLinePlaceholder":289},[220,1434,1435],{"class":222,"line":267},[220,1436,1437],{},"# Initialize engine with PP-OCRv6 preset\n",[220,1439,1440],{"class":222,"line":280},[220,1441,1442],{},"config = InitializeConfig.ppv6(\"models\u002Fdet.rten\", \"models\u002Frec.rten\", \"models\u002Fdict.txt\")\n",[220,1444,1445],{"class":222,"line":286},[220,1446,1447],{},"engine = RustO.initialize(config)\n",[220,1449,1450],{"class":222,"line":293},[220,1451,290],{"emptyLinePlaceholder":289},[220,1453,1454],{"class":222,"line":344},[220,1455,1456],{},"# Structured line recognition\n",[220,1458,1459],{"class":222,"line":351},[220,1460,1461],{},"options = OcrRunOptions(output=OutputGranularity.LINES)\n",[220,1463,1464],{"class":222,"line":406},[220,1465,1466],{},"result = engine.detect_text(ImageSource.PATH(\"receipt.jpg\"), options)\n",[220,1468,1469],{"class":222,"line":441},[220,1470,1471],{},"if result.is_STRUCTURED():\n",[220,1473,1474],{"class":222,"line":446},[220,1475,1476],{},"    for line in result.results:\n",[220,1478,1479],{"class":222,"line":452},[220,1480,1481],{},"        print(f\"[{line.score:.2f}] {line.text}\")\n",[220,1483,1484],{"class":222,"line":486},[220,1485,290],{"emptyLinePlaceholder":289},[220,1487,1488],{"class":222,"line":508},[220,1489,1490],{},"# Spatial layout reconstruction\n",[220,1492,1493],{"class":222,"line":531},[220,1494,1495],{},"spatial_options = OcrRunOptions(output=OutputGranularity.SPATIAL)\n",[220,1497,1498],{"class":222,"line":536},[220,1499,1500],{},"spatial_result = engine.detect_text(ImageSource.PATH(\"receipt.jpg\"), spatial_options)\n",[220,1502,1503],{"class":222,"line":576},[220,1504,1505],{},"if spatial_result.is_SPATIAL():\n",[220,1507,1508],{"class":222,"line":581},[220,1509,1510],{},"    print(spatial_result.text)\n",[206,1512],{},[183,1514,1516],{"id":1515},"_4-golang","4. Golang",[196,1518,1522],{"className":1519,"code":1520,"language":1521,"meta":202,"style":202},"language-go shiki shiki-themes material-theme-lighter github-light github-dark monokai","package main\n\nimport (\n    \"fmt\"\n    \"log\"\n\n    \"github.com\u002Fbyrizki\u002Frusto-rs\u002Fpackages\u002Fgo\"\n)\n\nfunc main() {\n    config := `{\"detection\":{\"model_path\":\"models\u002Fdet.rten\"},\"recognition\":{\"model_path\":\"models\u002Frec.rten\",\"dict_path\":\"models\u002Fdict.txt\"}}`\n    engine, err := rusto.New(config)\n    if err != nil {\n        log.Fatalf(\"Init failed: %v\", err)\n    }\n    defer engine.Close()\n\n    lines, err := engine.DetectTextFile(\"receipt.jpg\", \"{}\")\n    if err != nil {\n        log.Fatalf(\"OCR failed: %v\", err)\n    }\n\n    for _, line := range lines {\n        fmt.Printf(\"[%.2f] %s\\n\", line.Score, line.Text)\n    }\n}\n","go",[191,1523,1524,1529,1533,1538,1543,1548,1552,1557,1562,1566,1571,1576,1581,1586,1591,1595,1600,1604,1609,1613,1618,1622,1626,1631,1636,1640],{"__ignoreMap":202},[220,1525,1526],{"class":222,"line":223},[220,1527,1528],{},"package main\n",[220,1530,1531],{"class":222,"line":242},[220,1532,290],{"emptyLinePlaceholder":289},[220,1534,1535],{"class":222,"line":267},[220,1536,1537],{},"import (\n",[220,1539,1540],{"class":222,"line":280},[220,1541,1542],{},"    \"fmt\"\n",[220,1544,1545],{"class":222,"line":286},[220,1546,1547],{},"    \"log\"\n",[220,1549,1550],{"class":222,"line":293},[220,1551,290],{"emptyLinePlaceholder":289},[220,1553,1554],{"class":222,"line":344},[220,1555,1556],{},"    \"github.com\u002Fbyrizki\u002Frusto-rs\u002Fpackages\u002Fgo\"\n",[220,1558,1559],{"class":222,"line":351},[220,1560,1561],{},")\n",[220,1563,1564],{"class":222,"line":406},[220,1565,290],{"emptyLinePlaceholder":289},[220,1567,1568],{"class":222,"line":441},[220,1569,1570],{},"func main() {\n",[220,1572,1573],{"class":222,"line":446},[220,1574,1575],{},"    config := `{\"detection\":{\"model_path\":\"models\u002Fdet.rten\"},\"recognition\":{\"model_path\":\"models\u002Frec.rten\",\"dict_path\":\"models\u002Fdict.txt\"}}`\n",[220,1577,1578],{"class":222,"line":452},[220,1579,1580],{},"    engine, err := rusto.New(config)\n",[220,1582,1583],{"class":222,"line":486},[220,1584,1585],{},"    if err != nil {\n",[220,1587,1588],{"class":222,"line":508},[220,1589,1590],{},"        log.Fatalf(\"Init failed: %v\", err)\n",[220,1592,1593],{"class":222,"line":531},[220,1594,867],{},[220,1596,1597],{"class":222,"line":536},[220,1598,1599],{},"    defer engine.Close()\n",[220,1601,1602],{"class":222,"line":576},[220,1603,290],{"emptyLinePlaceholder":289},[220,1605,1606],{"class":222,"line":581},[220,1607,1608],{},"    lines, err := engine.DetectTextFile(\"receipt.jpg\", \"{}\")\n",[220,1610,1611],{"class":222,"line":592},[220,1612,1585],{},[220,1614,1615],{"class":222,"line":615},[220,1616,1617],{},"        log.Fatalf(\"OCR failed: %v\", err)\n",[220,1619,1620],{"class":222,"line":648},[220,1621,867],{},[220,1623,1624],{"class":222,"line":665},[220,1625,290],{"emptyLinePlaceholder":289},[220,1627,1628],{"class":222,"line":674},[220,1629,1630],{},"    for _, line := range lines {\n",[220,1632,1633],{"class":222,"line":735},[220,1634,1635],{},"        fmt.Printf(\"[%.2f] %s\\n\", line.Score, line.Text)\n",[220,1637,1638],{"class":222,"line":793},[220,1639,867],{},[220,1641,1642],{"class":222,"line":812},[220,1643,1058],{},[206,1645],{},[183,1647,1649],{"id":1648},"_5-java-kotlin","5. Java \u002F Kotlin",[196,1651,1655],{"className":1652,"code":1653,"language":1654,"meta":202,"style":202},"language-java shiki shiki-themes material-theme-lighter github-light github-dark monokai","import com.byrizki.rusto.RustO;\nimport com.byrizki.rusto.TextResult;\nimport java.util.List;\n\npublic class App {\n    public static void main(String[] args) {\n        String config = \"{\\\"detection\\\":{\\\"model_path\\\":\\\"models\u002Fdet.rten\\\"},\\\"recognition\\\":{\\\"model_path\\\":\\\"models\u002Frec.rten\\\",\\\"dict_path\\\":\\\"models\u002Fdict.txt\\\"}}\";\n        try (RustO engine = RustO.initialize(config)) {\n            List\u003CTextResult> lines = engine.detectTextFile(\"receipt.jpg\");\n            for (TextResult line : lines) {\n                System.out.printf(\"[%.2f] %s%n\", line.getScore(), line.getText());\n            }\n        }\n    }\n}\n","java",[191,1656,1657,1683,1704,1723,1727,1740,1769,1859,1887,1919,1937,1982,1986,1990,1994],{"__ignoreMap":202},[220,1658,1659,1661,1665,1668,1671,1673,1676,1678,1681],{"class":222,"line":223},[220,1660,1076],{"class":226},[220,1662,1664],{"class":1663},"sAzHV"," com",[220,1666,477],{"class":1667},"sW3yT",[220,1669,1670],{"class":1663},"byrizki",[220,1672,477],{"class":1667},[220,1674,1675],{"class":1663},"rusto",[220,1677,477],{"class":1667},[220,1679,1680],{"class":1663},"RustO",[220,1682,438],{"class":238},[220,1684,1685,1687,1689,1691,1693,1695,1697,1699,1702],{"class":222,"line":242},[220,1686,1076],{"class":226},[220,1688,1664],{"class":1663},[220,1690,477],{"class":1667},[220,1692,1670],{"class":1663},[220,1694,477],{"class":1667},[220,1696,1675],{"class":1663},[220,1698,477],{"class":1667},[220,1700,1701],{"class":1663},"TextResult",[220,1703,438],{"class":238},[220,1705,1706,1708,1711,1713,1716,1718,1721],{"class":222,"line":267},[220,1707,1076],{"class":226},[220,1709,1710],{"class":1663}," java",[220,1712,477],{"class":1667},[220,1714,1715],{"class":1663},"util",[220,1717,477],{"class":1667},[220,1719,1720],{"class":1663},"List",[220,1722,438],{"class":238},[220,1724,1725],{"class":222,"line":280},[220,1726,290],{"emptyLinePlaceholder":289},[220,1728,1729,1732,1735,1738],{"class":222,"line":286},[220,1730,1731],{"class":411},"public",[220,1733,1734],{"class":411}," class",[220,1736,1737],{"class":230}," App",[220,1739,341],{"class":238},[220,1741,1742,1745,1748,1751,1753,1755,1758,1761,1765,1767],{"class":222,"line":293},[220,1743,1744],{"class":411},"    public",[220,1746,1747],{"class":411}," static",[220,1749,1750],{"class":354}," void",[220,1752,300],{"class":299},[220,1754,371],{"class":238},[220,1756,1757],{"class":354},"String",[220,1759,1760],{"class":238},"[]",[220,1762,1764],{"class":1763},"sQgqH"," args",[220,1766,432],{"class":238},[220,1768,341],{"class":238},[220,1770,1771,1775,1777,1779,1781,1783,1786,1789,1791,1794,1796,1799,1801,1803,1805,1807,1809,1812,1814,1817,1819,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1842,1844,1846,1848,1850,1852,1855,1857],{"class":222,"line":344},[220,1772,1774],{"class":1773},"syw9h","        String",[220,1776,358],{"class":324},[220,1778,361],{"class":234},[220,1780,386],{"class":374},[220,1782,683],{"class":378},[220,1784,1785],{"class":1019},"\\\"",[220,1787,1788],{"class":378},"detection",[220,1790,1785],{"class":1019},[220,1792,1793],{"class":378},":{",[220,1795,1785],{"class":1019},[220,1797,1798],{"class":378},"model_path",[220,1800,1785],{"class":1019},[220,1802,194],{"class":378},[220,1804,1785],{"class":1019},[220,1806,379],{"class":378},[220,1808,1785],{"class":1019},[220,1810,1811],{"class":378},"},",[220,1813,1785],{"class":1019},[220,1815,1816],{"class":378},"recognition",[220,1818,1785],{"class":1019},[220,1820,1793],{"class":378},[220,1822,1785],{"class":1019},[220,1824,1798],{"class":378},[220,1826,1785],{"class":1019},[220,1828,194],{"class":378},[220,1830,1785],{"class":1019},[220,1832,389],{"class":378},[220,1834,1785],{"class":1019},[220,1836,248],{"class":378},[220,1838,1785],{"class":1019},[220,1840,1841],{"class":378},"dict_path",[220,1843,1785],{"class":1019},[220,1845,194],{"class":378},[220,1847,1785],{"class":1019},[220,1849,398],{"class":378},[220,1851,1785],{"class":1019},[220,1853,1854],{"class":378},"}}",[220,1856,375],{"class":374},[220,1858,438],{"class":238},[220,1860,1861,1864,1866,1868,1871,1873,1875,1877,1879,1881,1883,1885],{"class":222,"line":351},[220,1862,1863],{"class":584},"        try",[220,1865,1269],{"class":238},[220,1867,1680],{"class":1773},[220,1869,1870],{"class":324}," engine ",[220,1872,361],{"class":234},[220,1874,275],{"class":324},[220,1876,477],{"class":238},[220,1878,424],{"class":299},[220,1880,371],{"class":238},[220,1882,429],{"class":324},[220,1884,1259],{"class":238},[220,1886,341],{"class":238},[220,1888,1889,1892,1894,1896,1899,1901,1903,1905,1907,1909,1911,1913,1915,1917],{"class":222,"line":406},[220,1890,1891],{"class":1773},"            List",[220,1893,318],{"class":238},[220,1895,1701],{"class":354},[220,1897,1898],{"class":238},">",[220,1900,660],{"class":324},[220,1902,361],{"class":234},[220,1904,1189],{"class":324},[220,1906,477],{"class":238},[220,1908,1235],{"class":299},[220,1910,371],{"class":238},[220,1912,375],{"class":374},[220,1914,193],{"class":378},[220,1916,375],{"class":374},[220,1918,403],{"class":238},[220,1920,1921,1923,1925,1927,1929,1931,1933,1935],{"class":222,"line":441},[220,1922,651],{"class":584},[220,1924,1269],{"class":238},[220,1926,1701],{"class":1773},[220,1928,654],{"class":324},[220,1930,194],{"class":584},[220,1932,638],{"class":324},[220,1934,432],{"class":238},[220,1936,341],{"class":238},[220,1938,1939,1942,1944,1947,1949,1952,1954,1956,1959,1961,1963,1965,1967,1970,1973,1975,1977,1980],{"class":222,"line":446},[220,1940,1941],{"class":324},"                System",[220,1943,477],{"class":238},[220,1945,1946],{"class":324},"out",[220,1948,477],{"class":238},[220,1950,1951],{"class":299},"printf",[220,1953,371],{"class":238},[220,1955,375],{"class":374},[220,1957,1958],{"class":378},"[%.2f] %s%n",[220,1960,375],{"class":374},[220,1962,248],{"class":238},[220,1964,753],{"class":324},[220,1966,477],{"class":238},[220,1968,1969],{"class":299},"getScore",[220,1971,1972],{"class":238},"(),",[220,1974,753],{"class":324},[220,1976,477],{"class":238},[220,1978,1979],{"class":299},"getText",[220,1981,483],{"class":238},[220,1983,1984],{"class":222,"line":452},[220,1985,821],{"class":238},[220,1987,1988],{"class":222,"line":486},[220,1989,827],{"class":238},[220,1991,1992],{"class":222,"line":508},[220,1993,867],{"class":238},[220,1995,1996],{"class":222,"line":531},[220,1997,1058],{"class":238},[206,1999],{},[183,2001,2003],{"id":2002},"_6-flutter-dart","6. Flutter & Dart",[196,2005,2009],{"className":2006,"code":2007,"language":2008,"meta":202,"style":202},"language-dart shiki shiki-themes material-theme-lighter github-light github-dark monokai","import 'package:rusto\u002Frusto.dart';\n\nvoid main() {\n  final engine = RustO.initialize('''\n  {\n    \"detection\": { \"model_path\": \"models\u002Fdet.rten\" },\n    \"recognition\": { \"model_path\": \"models\u002Frec.rten\", \"dict_path\": \"models\u002Fdict.txt\" }\n  }\n  ''');\n\n  final results = engine.detectTextFile('receipt.jpg');\n  for (final line in results) {\n    print('[${line.score.toStringAsFixed(2)}] ${line.text}');\n  }\n  engine.close();\n}\n","dart",[191,2010,2011,2016,2020,2025,2030,2035,2040,2045,2050,2055,2059,2064,2069,2074,2078,2083],{"__ignoreMap":202},[220,2012,2013],{"class":222,"line":223},[220,2014,2015],{},"import 'package:rusto\u002Frusto.dart';\n",[220,2017,2018],{"class":222,"line":242},[220,2019,290],{"emptyLinePlaceholder":289},[220,2021,2022],{"class":222,"line":267},[220,2023,2024],{},"void main() {\n",[220,2026,2027],{"class":222,"line":280},[220,2028,2029],{},"  final engine = RustO.initialize('''\n",[220,2031,2032],{"class":222,"line":286},[220,2033,2034],{},"  {\n",[220,2036,2037],{"class":222,"line":293},[220,2038,2039],{},"    \"detection\": { \"model_path\": \"models\u002Fdet.rten\" },\n",[220,2041,2042],{"class":222,"line":344},[220,2043,2044],{},"    \"recognition\": { \"model_path\": \"models\u002Frec.rten\", \"dict_path\": \"models\u002Fdict.txt\" }\n",[220,2046,2047],{"class":222,"line":351},[220,2048,2049],{},"  }\n",[220,2051,2052],{"class":222,"line":406},[220,2053,2054],{},"  ''');\n",[220,2056,2057],{"class":222,"line":441},[220,2058,290],{"emptyLinePlaceholder":289},[220,2060,2061],{"class":222,"line":446},[220,2062,2063],{},"  final results = engine.detectTextFile('receipt.jpg');\n",[220,2065,2066],{"class":222,"line":452},[220,2067,2068],{},"  for (final line in results) {\n",[220,2070,2071],{"class":222,"line":486},[220,2072,2073],{},"    print('[${line.score.toStringAsFixed(2)}] ${line.text}');\n",[220,2075,2076],{"class":222,"line":508},[220,2077,2049],{},[220,2079,2080],{"class":222,"line":531},[220,2081,2082],{},"  engine.close();\n",[220,2084,2085],{"class":222,"line":536},[220,2086,1058],{},[206,2088],{},[183,2090,2092],{"id":2091},"_7-net-c","7. .NET \u002F C#",[196,2094,2098],{"className":2095,"code":2096,"language":2097,"meta":202,"style":202},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark monokai","using System;\nusing RustODotnet;\n\n\u002F\u002F 1. Initialize engine (loads bundled PP-OCRv6 models automatically)\nusing var ocr = RustO.Initialize();\n\n\u002F\u002F 2. Structured line detection\nvar imageSource = new UriImageSource(\"receipt.jpg\");\nvar options = new OcrRunOptions { Output = OutputGranularity.Lines };\n\nvar result = ocr.DetectText(imageSource, options);\nif (result is StructuredDetectTextResult structured)\n{\n    foreach (var item in structured.Items)\n    {\n        Console.WriteLine($\"[{item.Frame.Left:F0}, {item.Frame.Top:F0}] ({item.Score:P0}) {item.Text}\");\n    }\n}\n\n\u002F\u002F 3. Spatial text reconstruction\nvar spatialOptions = new OcrRunOptions { Output = OutputGranularity.Spatial };\nvar spatialResult = ocr.DetectText(imageSource, spatialOptions);\nif (spatialResult is SpatialDetectTextResult spatial)\n{\n    Console.WriteLine(\"\\n--- Spatial Layout ---\");\n    Console.WriteLine(spatial.Text);\n}\n","csharp",[191,2099,2100,2111,2120,2124,2129,2151,2155,2160,2185,2214,2218,2245,2266,2270,2294,2299,2395,2399,2403,2407,2412,2440,2465,2484,2488,2510,2529],{"__ignoreMap":202},[220,2101,2102,2105,2109],{"class":222,"line":223},[220,2103,2104],{"class":226},"using",[220,2106,2108],{"class":2107},"sM5v9"," System",[220,2110,438],{"class":238},[220,2112,2113,2115,2118],{"class":222,"line":242},[220,2114,2104],{"class":226},[220,2116,2117],{"class":2107}," RustODotnet",[220,2119,438],{"class":238},[220,2121,2122],{"class":222,"line":267},[220,2123,290],{"emptyLinePlaceholder":289},[220,2125,2126],{"class":222,"line":280},[220,2127,2128],{"class":347},"\u002F\u002F 1. Initialize engine (loads bundled PP-OCRv6 models automatically)\n",[220,2130,2131,2133,2137,2140,2142,2144,2146,2149],{"class":222,"line":286},[220,2132,2104],{"class":584},[220,2134,2136],{"class":2135},"sQHqT"," var",[220,2138,546],{"class":2139},"sQqfL",[220,2141,982],{"class":234},[220,2143,275],{"class":324},[220,2145,477],{"class":238},[220,2147,2148],{"class":299},"Initialize",[220,2150,505],{"class":238},[220,2152,2153],{"class":222,"line":293},[220,2154,290],{"emptyLinePlaceholder":289},[220,2156,2157],{"class":222,"line":344},[220,2158,2159],{"class":347},"\u002F\u002F 2. Structured line detection\n",[220,2161,2162,2165,2168,2170,2172,2175,2177,2179,2181,2183],{"class":222,"line":351},[220,2163,2164],{"class":2135},"var",[220,2166,2167],{"class":2139}," imageSource",[220,2169,982],{"class":234},[220,2171,1194],{"class":234},[220,2173,2174],{"class":230}," UriImageSource",[220,2176,371],{"class":238},[220,2178,375],{"class":374},[220,2180,193],{"class":378},[220,2182,375],{"class":374},[220,2184,403],{"class":238},[220,2186,2187,2189,2192,2194,2196,2198,2200,2203,2205,2207,2209,2212],{"class":222,"line":406},[220,2188,2164],{"class":2135},[220,2190,2191],{"class":2139}," options",[220,2193,982],{"class":234},[220,2195,1194],{"class":234},[220,2197,261],{"class":230},[220,2199,1079],{"class":238},[220,2201,2202],{"class":324}," Output ",[220,2204,361],{"class":234},[220,2206,521],{"class":324},[220,2208,477],{"class":238},[220,2210,2211],{"class":324},"Lines ",[220,2213,283],{"class":238},[220,2215,2216],{"class":222,"line":441},[220,2217,290],{"emptyLinePlaceholder":289},[220,2219,2220,2222,2225,2227,2229,2231,2234,2236,2239,2241,2243],{"class":222,"line":446},[220,2221,2164],{"class":2135},[220,2223,2224],{"class":2139}," result",[220,2226,982],{"class":234},[220,2228,546],{"class":324},[220,2230,477],{"class":238},[220,2232,2233],{"class":299},"DetectText",[220,2235,371],{"class":238},[220,2237,2238],{"class":324},"imageSource",[220,2240,248],{"class":238},[220,2242,2191],{"class":324},[220,2244,403],{"class":238},[220,2246,2247,2250,2252,2255,2258,2261,2264],{"class":222,"line":452},[220,2248,2249],{"class":584},"if",[220,2251,1269],{"class":238},[220,2253,2254],{"class":324},"result ",[220,2256,2257],{"class":234},"is",[220,2259,2260],{"class":230}," StructuredDetectTextResult",[220,2262,2263],{"class":2139}," structured",[220,2265,1561],{"class":238},[220,2267,2268],{"class":222,"line":486},[220,2269,239],{"class":238},[220,2271,2272,2275,2277,2279,2282,2285,2287,2289,2292],{"class":222,"line":508},[220,2273,2274],{"class":584},"    foreach",[220,2276,1269],{"class":238},[220,2278,2164],{"class":2135},[220,2280,2281],{"class":2139}," item",[220,2283,2284],{"class":584}," in",[220,2286,2263],{"class":324},[220,2288,477],{"class":238},[220,2290,2291],{"class":324},"Items",[220,2293,1561],{"class":238},[220,2295,2296],{"class":222,"line":531},[220,2297,2298],{"class":238},"    {\n",[220,2300,2301,2304,2306,2309,2311,2314,2316,2318,2321,2323,2326,2328,2331,2333,2336,2338,2340,2342,2344,2346,2348,2350,2353,2355,2357,2359,2362,2364,2366,2368,2371,2373,2376,2378,2380,2382,2384,2386,2389,2391,2393],{"class":222,"line":536},[220,2302,2303],{"class":324},"        Console",[220,2305,477],{"class":238},[220,2307,2308],{"class":299},"WriteLine",[220,2310,371],{"class":238},[220,2312,2313],{"class":374},"$\"",[220,2315,680],{"class":378},[220,2317,683],{"class":1307},[220,2319,2320],{"class":324},"item",[220,2322,477],{"class":1307},[220,2324,2325],{"class":324},"Frame",[220,2327,477],{"class":1307},[220,2329,2330],{"class":324},"Left",[220,2332,194],{"class":234},[220,2334,2335],{"class":324},"F0",[220,2337,689],{"class":1307},[220,2339,692],{"class":378},[220,2341,683],{"class":1307},[220,2343,2320],{"class":324},[220,2345,477],{"class":1307},[220,2347,2325],{"class":324},[220,2349,477],{"class":1307},[220,2351,2352],{"class":324},"Top",[220,2354,194],{"class":234},[220,2356,2335],{"class":324},[220,2358,689],{"class":1307},[220,2360,2361],{"class":378},"] (",[220,2363,683],{"class":1307},[220,2365,2320],{"class":324},[220,2367,477],{"class":1307},[220,2369,2370],{"class":324},"Score",[220,2372,194],{"class":234},[220,2374,2375],{"class":324},"P0",[220,2377,689],{"class":1307},[220,2379,727],{"class":378},[220,2381,683],{"class":1307},[220,2383,2320],{"class":324},[220,2385,477],{"class":1307},[220,2387,2388],{"class":324},"Text",[220,2390,689],{"class":1307},[220,2392,375],{"class":374},[220,2394,403],{"class":238},[220,2396,2397],{"class":222,"line":576},[220,2398,867],{"class":238},[220,2400,2401],{"class":222,"line":581},[220,2402,1058],{"class":238},[220,2404,2405],{"class":222,"line":592},[220,2406,290],{"emptyLinePlaceholder":289},[220,2408,2409],{"class":222,"line":615},[220,2410,2411],{"class":347},"\u002F\u002F 3. Spatial text reconstruction\n",[220,2413,2414,2416,2419,2421,2423,2425,2427,2429,2431,2433,2435,2438],{"class":222,"line":648},[220,2415,2164],{"class":2135},[220,2417,2418],{"class":2139}," spatialOptions",[220,2420,982],{"class":234},[220,2422,1194],{"class":234},[220,2424,261],{"class":230},[220,2426,1079],{"class":238},[220,2428,2202],{"class":324},[220,2430,361],{"class":234},[220,2432,521],{"class":324},[220,2434,477],{"class":238},[220,2436,2437],{"class":324},"Spatial ",[220,2439,283],{"class":238},[220,2441,2442,2444,2447,2449,2451,2453,2455,2457,2459,2461,2463],{"class":222,"line":665},[220,2443,2164],{"class":2135},[220,2445,2446],{"class":2139}," spatialResult",[220,2448,982],{"class":234},[220,2450,546],{"class":324},[220,2452,477],{"class":238},[220,2454,2233],{"class":299},[220,2456,371],{"class":238},[220,2458,2238],{"class":324},[220,2460,248],{"class":238},[220,2462,2418],{"class":324},[220,2464,403],{"class":238},[220,2466,2467,2469,2471,2474,2476,2479,2482],{"class":222,"line":674},[220,2468,2249],{"class":584},[220,2470,1269],{"class":238},[220,2472,2473],{"class":324},"spatialResult ",[220,2475,2257],{"class":234},[220,2477,2478],{"class":230}," SpatialDetectTextResult",[220,2480,2481],{"class":2139}," spatial",[220,2483,1561],{"class":238},[220,2485,2486],{"class":222,"line":735},[220,2487,239],{"class":238},[220,2489,2490,2493,2495,2497,2499,2501,2503,2506,2508],{"class":222,"line":793},[220,2491,2492],{"class":324},"    Console",[220,2494,477],{"class":238},[220,2496,2308],{"class":299},[220,2498,371],{"class":238},[220,2500,375],{"class":374},[220,2502,1020],{"class":1019},[220,2504,2505],{"class":378},"--- Spatial Layout ---",[220,2507,375],{"class":374},[220,2509,403],{"class":238},[220,2511,2512,2514,2516,2518,2520,2523,2525,2527],{"class":222,"line":812},[220,2513,2492],{"class":324},[220,2515,477],{"class":238},[220,2517,2308],{"class":299},[220,2519,371],{"class":238},[220,2521,2522],{"class":324},"spatial",[220,2524,477],{"class":238},[220,2526,2388],{"class":324},[220,2528,403],{"class":238},[220,2530,2531],{"class":222,"line":818},[220,2532,1058],{"class":238},[206,2534],{},[183,2536,2538],{"id":2537},"_8-react-native","8. React Native",[196,2540,2542],{"className":1067,"code":2541,"language":1069,"meta":202,"style":202},"import React, { useEffect, useState } from 'react';\nimport { Button, SafeAreaView, ScrollView, Text } from 'react-native';\nimport { detectText, initialize, TextResult } from '@rustors\u002Freact-native';\n\nexport default function QuickScanApp() {\n  const [lines, setLines] = useState\u003CTextResult[]>([]);\n\n  useEffect(() => {\n    initialize();\n  }, []);\n\n  const handleScanStructured = async () => {\n    const results = await detectText(\n      { uri: 'file:\u002F\u002F\u002Fpath\u002Fto\u002Freceipt.jpg' },\n      { output: 'lines' }\n    );\n    setLines(results as TextResult[]);\n  };\n\n  return (\n    \u003CSafeAreaView style={{ flex: 1, padding: 16 }}>\n      \u003CButton title=\"Scan Lines\" onPress={handleScanStructured} \u002F>\n      \u003CScrollView style={{ marginTop: 16 }}>\n        {lines.map((line, idx) => (\n          \u003CText key={idx}>{line.text} ({Math.round(line.score * 100)}%)\u003C\u002FText>\n        ))}\n      \u003C\u002FScrollView>\n    \u003C\u002FSafeAreaView>\n  );\n}\n",[191,2543,2544,2576,2613,2645,2649,2667,2702,2706,2719,2728,2738,2742,2762,2779,2798,2815,2822,2842,2847,2851,2859,2899,2934,2958,2987,3043,3050,3059,3068,3075],{"__ignoreMap":202},[220,2545,2546,2548,2551,2553,2555,2558,2560,2563,2565,2567,2569,2572,2574],{"class":222,"line":223},[220,2547,1076],{"class":584},[220,2549,2550],{"class":324}," React",[220,2552,248],{"class":238},[220,2554,1079],{"class":238},[220,2556,2557],{"class":324}," useEffect",[220,2559,248],{"class":238},[220,2561,2562],{"class":324}," useState",[220,2564,1084],{"class":238},[220,2566,1087],{"class":584},[220,2568,1090],{"class":374},[220,2570,2571],{"class":378},"react",[220,2573,1096],{"class":374},[220,2575,438],{"class":238},[220,2577,2578,2580,2582,2585,2587,2590,2592,2595,2597,2600,2602,2604,2606,2609,2611],{"class":222,"line":242},[220,2579,1076],{"class":584},[220,2581,1079],{"class":238},[220,2583,2584],{"class":324}," Button",[220,2586,248],{"class":238},[220,2588,2589],{"class":324}," SafeAreaView",[220,2591,248],{"class":238},[220,2593,2594],{"class":324}," ScrollView",[220,2596,248],{"class":238},[220,2598,2599],{"class":324}," Text",[220,2601,1084],{"class":238},[220,2603,1087],{"class":584},[220,2605,1090],{"class":374},[220,2607,2608],{"class":378},"react-native",[220,2610,1096],{"class":374},[220,2612,438],{"class":238},[220,2614,2615,2617,2619,2622,2624,2627,2629,2632,2634,2636,2638,2641,2643],{"class":222,"line":267},[220,2616,1076],{"class":584},[220,2618,1079],{"class":238},[220,2620,2621],{"class":324}," detectText",[220,2623,248],{"class":238},[220,2625,2626],{"class":324}," initialize",[220,2628,248],{"class":238},[220,2630,2631],{"class":324}," TextResult",[220,2633,1084],{"class":238},[220,2635,1087],{"class":584},[220,2637,1090],{"class":374},[220,2639,2640],{"class":378},"@rustors\u002Freact-native",[220,2642,1096],{"class":374},[220,2644,438],{"class":238},[220,2646,2647],{"class":222,"line":280},[220,2648,290],{"emptyLinePlaceholder":289},[220,2650,2651,2654,2657,2660,2663,2665],{"class":222,"line":286},[220,2652,2653],{"class":584},"export",[220,2655,2656],{"class":584}," default",[220,2658,2659],{"class":354}," function",[220,2661,2662],{"class":299}," QuickScanApp",[220,2664,303],{"class":238},[220,2666,341],{"class":238},[220,2668,2669,2672,2675,2677,2679,2682,2685,2687,2689,2691,2693,2695,2697,2700],{"class":222,"line":293},[220,2670,2671],{"class":354},"  const",[220,2673,2674],{"class":238}," [",[220,2676,605],{"class":1110},[220,2678,248],{"class":238},[220,2680,2681],{"class":1110}," setLines",[220,2683,2684],{"class":238},"]",[220,2686,982],{"class":234},[220,2688,2562],{"class":299},[220,2690,318],{"class":238},[220,2692,1701],{"class":230},[220,2694,1760],{"class":1120},[220,2696,1898],{"class":238},[220,2698,2699],{"class":1120},"([])",[220,2701,438],{"class":238},[220,2703,2704],{"class":222,"line":344},[220,2705,290],{"emptyLinePlaceholder":289},[220,2707,2708,2711,2713,2715,2717],{"class":222,"line":351},[220,2709,2710],{"class":299},"  useEffect",[220,2712,371],{"class":1120},[220,2714,303],{"class":238},[220,2716,610],{"class":354},[220,2718,341],{"class":238},[220,2720,2721,2724,2726],{"class":222,"line":406},[220,2722,2723],{"class":299},"    initialize",[220,2725,303],{"class":1120},[220,2727,438],{"class":238},[220,2729,2730,2733,2736],{"class":222,"line":441},[220,2731,2732],{"class":238},"  },",[220,2734,2735],{"class":1120}," [])",[220,2737,438],{"class":238},[220,2739,2740],{"class":222,"line":446},[220,2741,290],{"emptyLinePlaceholder":289},[220,2743,2744,2746,2750,2752,2755,2758,2760],{"class":222,"line":452},[220,2745,2671],{"class":354},[220,2747,2749],{"class":2748},"sh7YU"," handleScanStructured",[220,2751,982],{"class":234},[220,2753,2754],{"class":411}," async",[220,2756,2757],{"class":238}," ()",[220,2759,610],{"class":354},[220,2761,341],{"class":238},[220,2763,2764,2767,2770,2772,2775,2777],{"class":222,"line":486},[220,2765,2766],{"class":354},"    const",[220,2768,2769],{"class":1110}," results",[220,2771,982],{"class":234},[220,2773,2774],{"class":584}," await",[220,2776,2621],{"class":299},[220,2778,671],{"class":1120},[220,2780,2781,2784,2787,2789,2791,2794,2796],{"class":222,"line":508},[220,2782,2783],{"class":238},"      {",[220,2785,2786],{"class":1120}," uri",[220,2788,194],{"class":238},[220,2790,1090],{"class":374},[220,2792,2793],{"class":378},"file:\u002F\u002F\u002Fpath\u002Fto\u002Freceipt.jpg",[220,2795,1096],{"class":374},[220,2797,1139],{"class":238},[220,2799,2800,2802,2805,2807,2809,2811,2813],{"class":222,"line":531},[220,2801,2783],{"class":238},[220,2803,2804],{"class":1120}," output",[220,2806,194],{"class":238},[220,2808,1090],{"class":374},[220,2810,605],{"class":378},[220,2812,1096],{"class":374},[220,2814,1174],{"class":238},[220,2816,2817,2820],{"class":222,"line":536},[220,2818,2819],{"class":1120},"    )",[220,2821,438],{"class":238},[220,2823,2824,2827,2829,2832,2835,2837,2840],{"class":222,"line":576},[220,2825,2826],{"class":299},"    setLines",[220,2828,371],{"class":1120},[220,2830,2831],{"class":324},"results",[220,2833,2834],{"class":584}," as",[220,2836,2631],{"class":230},[220,2838,2839],{"class":1120},"[])",[220,2841,438],{"class":238},[220,2843,2844],{"class":222,"line":581},[220,2845,2846],{"class":238},"  };\n",[220,2848,2849],{"class":222,"line":592},[220,2850,290],{"emptyLinePlaceholder":289},[220,2852,2853,2856],{"class":222,"line":615},[220,2854,2855],{"class":584},"  return",[220,2857,2858],{"class":1120}," (\n",[220,2860,2861,2864,2867,2870,2872,2875,2878,2880,2883,2885,2888,2890,2893,2896],{"class":222,"line":648},[220,2862,2863],{"class":234},"    \u003C",[220,2865,2866],{"class":324},"SafeAreaView",[220,2868,2869],{"class":324}," style",[220,2871,361],{"class":234},[220,2873,2874],{"class":238},"{{",[220,2876,2877],{"class":2139}," flex",[220,2879,194],{"class":238},[220,2881,2882],{"class":917}," 1",[220,2884,248],{"class":238},[220,2886,2887],{"class":2139}," padding",[220,2889,194],{"class":238},[220,2891,2892],{"class":917}," 16",[220,2894,2895],{"class":238}," }}",[220,2897,2898],{"class":234},">\n",[220,2900,2901,2904,2907,2910,2912,2914,2917,2919,2922,2924,2926,2929,2931],{"class":222,"line":665},[220,2902,2903],{"class":234},"      \u003C",[220,2905,2906],{"class":324},"Button",[220,2908,2909],{"class":324}," title",[220,2911,361],{"class":234},[220,2913,375],{"class":374},[220,2915,2916],{"class":378},"Scan Lines",[220,2918,375],{"class":374},[220,2920,2921],{"class":324}," onPress",[220,2923,361],{"class":234},[220,2925,683],{"class":238},[220,2927,2928],{"class":324},"handleScanStructured",[220,2930,689],{"class":238},[220,2932,2933],{"class":234}," \u002F>\n",[220,2935,2936,2938,2941,2943,2945,2947,2950,2952,2954,2956],{"class":222,"line":674},[220,2937,2903],{"class":234},[220,2939,2940],{"class":324},"ScrollView",[220,2942,2869],{"class":324},[220,2944,361],{"class":234},[220,2946,2874],{"class":238},[220,2948,2949],{"class":2139}," marginTop",[220,2951,194],{"class":238},[220,2953,2892],{"class":917},[220,2955,2895],{"class":238},[220,2957,2898],{"class":234},[220,2959,2960,2963,2965,2967,2970,2973,2975,2977,2980,2982,2985],{"class":222,"line":735},[220,2961,2962],{"class":238},"        {",[220,2964,605],{"class":1763},[220,2966,477],{"class":1120},[220,2968,2969],{"class":1763},"map",[220,2971,2972],{"class":1120},"((",[220,2974,222],{"class":1763},[220,2976,248],{"class":238},[220,2978,2979],{"class":1763}," idx",[220,2981,727],{"class":1120},[220,2983,2984],{"class":234},"=>",[220,2986,2858],{"class":1120},[220,2988,2989,2992,2994,2997,2999,3001,3004,3006,3008,3010,3013,3015,3017,3019,3021,3024,3027,3029,3031,3034,3036,3039,3041],{"class":222,"line":793},[220,2990,2991],{"class":234},"          \u003C",[220,2993,2388],{"class":324},[220,2995,2996],{"class":324}," key",[220,2998,361],{"class":234},[220,3000,683],{"class":238},[220,3002,3003],{"class":324},"idx",[220,3005,689],{"class":238},[220,3007,1898],{"class":234},[220,3009,683],{"class":238},[220,3011,3012],{"class":1120},"line.",[220,3014,201],{"class":324},[220,3016,689],{"class":238},[220,3018,1269],{"class":1120},[220,3020,683],{"class":238},[220,3022,3023],{"class":1120},"Math.round(line.score * ",[220,3025,3026],{"class":917},"100",[220,3028,432],{"class":1120},[220,3030,689],{"class":238},[220,3032,3033],{"class":234},"%",[220,3035,432],{"class":1120},[220,3037,3038],{"class":234},"\u003C\u002F",[220,3040,2388],{"class":324},[220,3042,2898],{"class":234},[220,3044,3045,3048],{"class":222,"line":812},[220,3046,3047],{"class":1120},"        ))",[220,3049,1058],{"class":238},[220,3051,3052,3055,3057],{"class":222,"line":818},[220,3053,3054],{"class":234},"      \u003C\u002F",[220,3056,2940],{"class":324},[220,3058,2898],{"class":234},[220,3060,3061,3064,3066],{"class":222,"line":824},[220,3062,3063],{"class":234},"    \u003C\u002F",[220,3065,2866],{"class":324},[220,3067,2898],{"class":234},[220,3069,3070,3073],{"class":222,"line":830},[220,3071,3072],{"class":1120},"  )",[220,3074,438],{"class":238},[220,3076,3077],{"class":222,"line":864},[220,3078,1058],{"class":238},[206,3080],{},[183,3082,3084],{"id":3083},"_9-ios-swift","9. iOS (Swift)",[196,3086,3090],{"className":3087,"code":3088,"language":3089,"meta":202,"style":202},"language-swift shiki shiki-themes material-theme-lighter github-light github-dark monokai","import Foundation\nimport RustO\n\nfunc runQuickOcr() {\n    do {\n        let ocr = try RustO.initialize()\n        let result = try ocr.detectText(.uri(\"receipt.jpg\"), options: OcrRunOptions(output: .lines))\n        if case .structured(let items) = result {\n            for item in items {\n                print(\"[\\(item.frame.left), \\(item.frame.top)] (\\(item.score)) \\(item.text)\")\n            }\n        }\n    } catch {\n        print(\"OCR Error: \\(error)\")\n    }\n}\n","swift",[191,3091,3092,3099,3106,3110,3122,3129,3150,3204,3234,3248,3311,3315,3319,3329,3351,3355],{"__ignoreMap":202},[220,3093,3094,3096],{"class":222,"line":223},[220,3095,1076],{"class":584},[220,3097,3098],{"class":230}," Foundation\n",[220,3100,3101,3103],{"class":222,"line":242},[220,3102,1076],{"class":584},[220,3104,3105],{"class":230}," RustO\n",[220,3107,3108],{"class":222,"line":267},[220,3109,290],{"emptyLinePlaceholder":289},[220,3111,3112,3115,3118,3120],{"class":222,"line":280},[220,3113,3114],{"class":354},"func",[220,3116,3117],{"class":299}," runQuickOcr",[220,3119,303],{"class":238},[220,3121,341],{"class":238},[220,3123,3124,3127],{"class":222,"line":286},[220,3125,3126],{"class":584},"    do",[220,3128,341],{"class":238},[220,3130,3131,3134,3136,3138,3141,3144,3147],{"class":222,"line":293},[220,3132,3133],{"class":226},"        let",[220,3135,415],{"class":324},[220,3137,361],{"class":234},[220,3139,3140],{"class":584}," try",[220,3142,3143],{"class":324}," RustO.",[220,3145,424],{"class":3146},"sMLJd",[220,3148,3149],{"class":238},"()\n",[220,3151,3152,3154,3156,3158,3160,3163,3166,3168,3170,3173,3175,3177,3179,3181,3183,3185,3187,3189,3191,3193,3196,3198,3201],{"class":222,"line":344},[220,3153,3133],{"class":226},[220,3155,541],{"class":324},[220,3157,361],{"class":234},[220,3159,3140],{"class":584},[220,3161,3162],{"class":324}," ocr.",[220,3164,3165],{"class":3146},"detectText",[220,3167,371],{"class":238},[220,3169,477],{"class":324},[220,3171,3172],{"class":3146},"uri",[220,3174,371],{"class":238},[220,3176,375],{"class":374},[220,3178,193],{"class":378},[220,3180,375],{"class":374},[220,3182,432],{"class":238},[220,3184,692],{"class":324},[220,3186,567],{"class":3146},[220,3188,194],{"class":238},[220,3190,261],{"class":3146},[220,3192,371],{"class":238},[220,3194,3195],{"class":3146},"output",[220,3197,194],{"class":238},[220,3199,3200],{"class":324}," .lines",[220,3202,3203],{"class":238},"))\n",[220,3205,3206,3209,3212,3215,3218,3220,3223,3226,3228,3230,3232],{"class":222,"line":351},[220,3207,3208],{"class":584},"        if",[220,3210,3211],{"class":584}," case",[220,3213,3214],{"class":324}," .",[220,3216,3217],{"class":3146},"structured",[220,3219,371],{"class":238},[220,3221,3222],{"class":226},"let",[220,3224,3225],{"class":324}," items",[220,3227,432],{"class":238},[220,3229,982],{"class":234},[220,3231,541],{"class":324},[220,3233,239],{"class":238},[220,3235,3236,3238,3241,3243,3246],{"class":222,"line":406},[220,3237,651],{"class":584},[220,3239,3240],{"class":324}," item ",[220,3242,657],{"class":584},[220,3244,3245],{"class":324}," items ",[220,3247,239],{"class":238},[220,3249,3250,3253,3255,3257,3259,3262,3265,3267,3269,3271,3273,3275,3277,3279,3281,3283,3285,3287,3289,3291,3293,3295,3297,3299,3301,3303,3305,3307,3309],{"class":222,"line":441},[220,3251,3252],{"class":3146},"                print",[220,3254,371],{"class":238},[220,3256,375],{"class":374},[220,3258,680],{"class":378},[220,3260,3261],{"class":1301},"\\(",[220,3263,3264],{"class":1317},"item.",[220,3266,743],{"class":324},[220,3268,477],{"class":1317},[220,3270,748],{"class":324},[220,3272,432],{"class":1301},[220,3274,692],{"class":378},[220,3276,3261],{"class":1301},[220,3278,3264],{"class":1317},[220,3280,743],{"class":324},[220,3282,477],{"class":1317},[220,3284,762],{"class":324},[220,3286,432],{"class":1301},[220,3288,2361],{"class":378},[220,3290,3261],{"class":1301},[220,3292,3264],{"class":1317},[220,3294,800],{"class":324},[220,3296,432],{"class":1301},[220,3298,727],{"class":378},[220,3300,3261],{"class":1301},[220,3302,3264],{"class":1317},[220,3304,201],{"class":1110},[220,3306,432],{"class":1301},[220,3308,375],{"class":374},[220,3310,1561],{"class":238},[220,3312,3313],{"class":222,"line":446},[220,3314,821],{"class":238},[220,3316,3317],{"class":222,"line":452},[220,3318,827],{"class":238},[220,3320,3321,3324,3327],{"class":222,"line":486},[220,3322,3323],{"class":238},"    }",[220,3325,3326],{"class":584}," catch",[220,3328,341],{"class":238},[220,3330,3331,3334,3336,3338,3341,3343,3345,3347,3349],{"class":222,"line":508},[220,3332,3333],{"class":3146},"        print",[220,3335,371],{"class":238},[220,3337,375],{"class":374},[220,3339,3340],{"class":378},"OCR Error: ",[220,3342,3261],{"class":1301},[220,3344,330],{"class":1317},[220,3346,432],{"class":1301},[220,3348,375],{"class":374},[220,3350,1561],{"class":238},[220,3352,3353],{"class":222,"line":531},[220,3354,867],{"class":238},[220,3356,3357],{"class":222,"line":536},[220,3358,1058],{"class":238},[206,3360],{},[183,3362,3364],{"id":3363},"_10-android-kotlin","10. Android (Kotlin)",[196,3366,3370],{"className":3367,"code":3368,"language":3369,"meta":202,"style":202},"language-kotlin shiki shiki-themes material-theme-lighter github-light github-dark monokai","package com.example.ocr\n\nimport android.content.Context\nimport com.byrizki.rusto.*\n\nfun processReceipt(context: Context, imageUri: String) {\n    RustO.initialize(context).use { ocr ->\n        val source = ImageSource.Uri(imageUri)\n        val structured = ocr.detectText(source, OcrRunOptions(output = OutputGranularity.LINES))\n        if (structured is DetectTextResult.Structured) {\n            structured.items.forEach { line ->\n                println(\"${line.text} (Score: ${line.score})\")\n            }\n        }\n    }\n}\n","kotlin",[191,3371,3372,3380,3384,3391,3402,3406,3428,3446,3465,3491,3503,3516,3547,3551,3555,3559],{"__ignoreMap":202},[220,3373,3374,3377],{"class":222,"line":223},[220,3375,3376],{"class":234},"package",[220,3378,3379],{"class":2139}," com.example.ocr\n",[220,3381,3382],{"class":222,"line":242},[220,3383,290],{"emptyLinePlaceholder":289},[220,3385,3386,3388],{"class":222,"line":267},[220,3387,1076],{"class":234},[220,3389,3390],{"class":2139}," android.content.Context\n",[220,3392,3393,3395,3398],{"class":222,"line":280},[220,3394,1076],{"class":234},[220,3396,3397],{"class":2139}," com.byrizki.rusto.",[220,3399,3401],{"class":3400},"sSsL9","*\n",[220,3403,3404],{"class":222,"line":286},[220,3405,290],{"emptyLinePlaceholder":289},[220,3407,3408,3411,3414,3417,3420,3423,3425],{"class":222,"line":293},[220,3409,3410],{"class":234},"fun",[220,3412,3413],{"class":299}," processReceipt",[220,3415,3416],{"class":324},"(context: ",[220,3418,3419],{"class":230},"Context",[220,3421,3422],{"class":324},", imageUri: ",[220,3424,1757],{"class":230},[220,3426,3427],{"class":324},") {\n",[220,3429,3430,3433,3435,3438,3440,3443],{"class":222,"line":344},[220,3431,3432],{"class":324},"    RustO.",[220,3434,424],{"class":299},[220,3436,3437],{"class":324},"(context).",[220,3439,227],{"class":299},[220,3441,3442],{"class":324}," { ocr ",[220,3444,3445],{"class":354},"->\n",[220,3447,3448,3451,3454,3456,3459,3462],{"class":222,"line":351},[220,3449,3450],{"class":234},"        val",[220,3452,3453],{"class":324}," source ",[220,3455,361],{"class":234},[220,3457,3458],{"class":324}," ImageSource.",[220,3460,3461],{"class":299},"Uri",[220,3463,3464],{"class":324},"(imageUri)\n",[220,3466,3467,3469,3472,3474,3476,3478,3481,3483,3486,3488],{"class":222,"line":406},[220,3468,3450],{"class":234},[220,3470,3471],{"class":324}," structured ",[220,3473,361],{"class":234},[220,3475,3162],{"class":324},[220,3477,3165],{"class":299},[220,3479,3480],{"class":324},"(source, ",[220,3482,164],{"class":299},[220,3484,3485],{"class":324},"(output ",[220,3487,361],{"class":234},[220,3489,3490],{"class":324}," OutputGranularity.LINES))\n",[220,3492,3493,3495,3498,3500],{"class":222,"line":441},[220,3494,3208],{"class":584},[220,3496,3497],{"class":324}," (structured ",[220,3499,2257],{"class":234},[220,3501,3502],{"class":324}," DetectTextResult.Structured) {\n",[220,3504,3505,3508,3511,3514],{"class":222,"line":446},[220,3506,3507],{"class":324},"            structured.items.",[220,3509,3510],{"class":299},"forEach",[220,3512,3513],{"class":324}," { line ",[220,3515,3445],{"class":354},[220,3517,3518,3521,3523,3525,3527,3530,3532,3535,3537,3540,3542,3545],{"class":222,"line":452},[220,3519,3520],{"class":299},"                println",[220,3522,371],{"class":324},[220,3524,375],{"class":378},[220,3526,1302],{"class":1301},[220,3528,3529],{"class":1317},"line.text",[220,3531,689],{"class":1301},[220,3533,3534],{"class":378}," (Score: ",[220,3536,1302],{"class":1301},[220,3538,3539],{"class":1317},"line.score",[220,3541,689],{"class":1301},[220,3543,3544],{"class":378},")\"",[220,3546,1561],{"class":324},[220,3548,3549],{"class":222,"line":486},[220,3550,821],{"class":324},[220,3552,3553],{"class":222,"line":508},[220,3554,827],{"class":324},[220,3556,3557],{"class":222,"line":531},[220,3558,867],{"class":324},[220,3560,3561],{"class":222,"line":536},[220,3562,1058],{"class":324},[206,3564],{},[183,3566,3568],{"id":3567},"_11-command-line-interface-cli","11. Command Line Interface (CLI)",[196,3570,3574],{"className":3571,"code":3572,"language":3573,"meta":202,"style":202},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","# 1. Output structured JSON with bounding polygon vertices\nrusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format json receipt.jpg\n\n# 2. Output formatted spatial text layout\nrusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format text-ordered receipt.jpg\n\n# 3. Output tab-separated values (TSV)\nrusto --det-model det.rten --rec-model rec.rten --dict dict.txt --format tsv receipt.jpg\n","bash",[191,3575,3576,3581,3614,3618,3623,3646,3650,3655],{"__ignoreMap":202},[220,3577,3578],{"class":222,"line":223},[220,3579,3580],{"class":347},"# 1. Output structured JSON with bounding polygon vertices\n",[220,3582,3583,3586,3590,3593,3596,3599,3602,3605,3608,3611],{"class":222,"line":242},[220,3584,1675],{"class":3585},"sR7ES",[220,3587,3589],{"class":3588},"sFhLe"," --det-model",[220,3591,3592],{"class":378}," det.rten",[220,3594,3595],{"class":3588}," --rec-model",[220,3597,3598],{"class":378}," rec.rten",[220,3600,3601],{"class":3588}," --dict",[220,3603,3604],{"class":378}," dict.txt",[220,3606,3607],{"class":3588}," --format",[220,3609,3610],{"class":378}," json",[220,3612,3613],{"class":378}," receipt.jpg\n",[220,3615,3616],{"class":222,"line":267},[220,3617,290],{"emptyLinePlaceholder":289},[220,3619,3620],{"class":222,"line":280},[220,3621,3622],{"class":347},"# 2. Output formatted spatial text layout\n",[220,3624,3625,3627,3629,3631,3633,3635,3637,3639,3641,3644],{"class":222,"line":286},[220,3626,1675],{"class":3585},[220,3628,3589],{"class":3588},[220,3630,3592],{"class":378},[220,3632,3595],{"class":3588},[220,3634,3598],{"class":378},[220,3636,3601],{"class":3588},[220,3638,3604],{"class":378},[220,3640,3607],{"class":3588},[220,3642,3643],{"class":378}," text-ordered",[220,3645,3613],{"class":378},[220,3647,3648],{"class":222,"line":293},[220,3649,290],{"emptyLinePlaceholder":289},[220,3651,3652],{"class":222,"line":344},[220,3653,3654],{"class":347},"# 3. Output tab-separated values (TSV)\n",[220,3656,3657,3659,3661,3663,3665,3667,3669,3671,3673,3676],{"class":222,"line":351},[220,3658,1675],{"class":3585},[220,3660,3589],{"class":3588},[220,3662,3592],{"class":378},[220,3664,3595],{"class":3588},[220,3666,3598],{"class":378},[220,3668,3601],{"class":3588},[220,3670,3604],{"class":378},[220,3672,3607],{"class":3588},[220,3674,3675],{"class":378}," tsv",[220,3677,3613],{"class":378},[3679,3680,3681],"style",{},"html pre.shiki code .sRxSC, html code.shiki .sRxSC{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#F92672;--shiki-sepia-font-style:inherit}html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .srJo8, html code.shiki .srJo8{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .s91G_, html code.shiki .s91G_{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#F8F8F2}html pre.shiki code .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .squCx, html code.shiki .squCx{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sD0ED, html code.shiki .sD0ED{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .ss7Ak, html code.shiki .ss7Ak{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-sepia:#88846F;--shiki-sepia-font-style:inherit}html pre.shiki code .slF1C, html code.shiki .slF1C{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#F92672}html pre.shiki code .s00De, html code.shiki .s00De{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#F8F8F2}html pre.shiki code .s-euU, html code.shiki .s-euU{--shiki-light:#90A4AE;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#F8F8F2}html pre.shiki code .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .shWJe, html code.shiki .shWJe{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sAzHV, html code.shiki .sAzHV{--shiki-light:#9C3EDA;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F92672}html pre.shiki code .sW3yT, html code.shiki .sW3yT{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F92672}html pre.shiki code .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sKvfc, html code.shiki .sKvfc{--shiki-light:#E2931D;--shiki-light-text-decoration:inherit;--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sQgqH, html code.shiki .sQgqH{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit;--shiki-sepia:#FD971F;--shiki-sepia-font-style:italic}html pre.shiki code .syw9h, html code.shiki .syw9h{--shiki-light:#9C3EDA;--shiki-light-font-style:inherit;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sQeA1, html code.shiki .sQeA1{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sh7YU, html code.shiki .sh7YU{--shiki-light:#90A4AE;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sQqfL, html code.shiki .sQqfL{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#F8F8F2}html pre.shiki code .sMLJd, html code.shiki .sMLJd{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}html pre.shiki code .sR7ES, html code.shiki .sR7ES{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sFhLe, html code.shiki .sFhLe{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sMTiH, html code.shiki .sMTiH{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sM5v9, html code.shiki .sM5v9{--shiki-light:#90A4AE;--shiki-light-text-decoration:inherit;--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sQHqT, html code.shiki .sQHqT{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sSsL9, html code.shiki .sSsL9{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#FD971F}",{"title":202,"searchDepth":242,"depth":242,"links":3683},[3684,3685,3686,3687,3688,3689,3690,3691,3692,3693,3694,3695],{"id":185,"depth":242,"text":186},{"id":210,"depth":242,"text":211},{"id":1063,"depth":242,"text":1064},{"id":1415,"depth":242,"text":1416},{"id":1515,"depth":242,"text":1516},{"id":1648,"depth":242,"text":1649},{"id":2002,"depth":242,"text":2003},{"id":2091,"depth":242,"text":2092},{"id":2537,"depth":242,"text":2538},{"id":3083,"depth":242,"text":3084},{"id":3363,"depth":242,"text":3364},{"id":3567,"depth":242,"text":3568},"Run your first OCR detection with RustO! across all supported platforms in under 5 minutes.","md",null,{},{"icon":23},{"title":3702,"description":3696},"Quick Start - RustO!","YmJa2K9CFfqEMEwQCe_bHtFOBubFF111hiGY75rt1mk",[3705,3707],{"title":15,"path":16,"stem":17,"description":3706,"icon":18,"children":-1},"How to install RustO! across Rust, Node.js, Python, Go, Java, Flutter, .NET, React Native, iOS, Android, and Native C FFI.",{"title":25,"path":26,"stem":27,"description":3708,"icon":28,"children":-1},"Experience RustO! OCR directly in your browser powered by WebAssembly and pre-trained PaddleOCR models.",1792905888204]