[{"data":1,"prerenderedAt":2219},["ShallowReactive",2],{"navigation_docs_id":3,"-id-how-to-use-c-ffi":173,"-id-how-to-use-c-ffi-surround":2214},[4,30,109,153],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","\u002Fid\u002Fgetting-started","id\u002F01.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Pengenalan","\u002Fid\u002Fgetting-started\u002Fintroduction","id\u002F01.getting-started\u002F1.introduction","i-ph-rocket",{"title":15,"path":16,"stem":17,"icon":18},"Instalasi","\u002Fid\u002Fgetting-started\u002Finstallation","id\u002F01.getting-started\u002F2.installation","i-ph-download",{"title":20,"path":21,"stem":22,"icon":23},"Panduan Cepat","\u002Fid\u002Fgetting-started\u002Fquick-start","id\u002F01.getting-started\u002F3.quick-start","i-ph-play",{"title":25,"path":26,"stem":27,"icon":28},"Demo Langsung","\u002Fid\u002Fgetting-started\u002Flive-demo","id\u002F01.getting-started\u002F4.live-demo","i-ph-sparkle",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"How To","\u002Fid\u002Fhow-to","id\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},"Menggunakan Rust","\u002Fid\u002Fhow-to\u002Fuse-rust","id\u002F02.how-to\u002F00.use-rust","simple-icons-rust",{"title":41,"path":42,"stem":43,"icon":44},"Menggunakan .NET \u002F C#","\u002Fid\u002Fhow-to\u002Fuse-csharp","id\u002F02.how-to\u002F01.use-csharp","simple-icons-dotnet",{"title":46,"path":47,"stem":48,"icon":49},"Menggunakan React Native","\u002Fid\u002Fhow-to\u002Fuse-react-native","id\u002F02.how-to\u002F02.use-react-native","simple-icons-react",{"title":51,"path":52,"stem":53,"icon":54},"Menggunakan iOS (Swift)","\u002Fid\u002Fhow-to\u002Fuse-ios-swift","id\u002F02.how-to\u002F03.use-ios-swift","simple-icons-apple",{"title":56,"path":57,"stem":58,"icon":59},"Menggunakan Android (Kotlin)","\u002Fid\u002Fhow-to\u002Fuse-android-kotlin","id\u002F02.how-to\u002F04.use-android-kotlin","simple-icons-android",{"title":61,"path":62,"stem":63,"icon":64},"Menggunakan C FFI","\u002Fid\u002Fhow-to\u002Fuse-c-ffi","id\u002F02.how-to\u002F05.use-c-ffi","simple-icons-c",{"title":66,"path":67,"stem":68,"icon":69},"Menggunakan CLI","\u002Fid\u002Fhow-to\u002Fuse-cli","id\u002F02.how-to\u002F06.use-cli","simple-icons-gnubash",{"title":71,"path":72,"stem":73,"icon":74},"Menggunakan Web","\u002Fid\u002Fhow-to\u002Fuse-web","id\u002F02.how-to\u002F07.use-web","simple-icons-javascript",{"title":76,"path":77,"stem":78,"icon":49},"Menggunakan React","\u002Fid\u002Fhow-to\u002Fuse-react","id\u002F02.how-to\u002F08.use-react",{"title":80,"path":81,"stem":82,"icon":83},"Menggunakan Node.js","\u002Fid\u002Fhow-to\u002Fuse-node","id\u002F02.how-to\u002F09.use-node","simple-icons-nodedotjs",{"title":85,"path":86,"stem":87,"icon":88},"Menggunakan Python","\u002Fid\u002Fhow-to\u002Fuse-python","id\u002F02.how-to\u002F10.use-python","simple-icons-python",{"title":90,"path":91,"stem":92,"icon":93},"Menggunakan Golang","\u002Fid\u002Fhow-to\u002Fuse-golang","id\u002F02.how-to\u002F11.use-golang","simple-icons-go",{"title":95,"path":96,"stem":97,"icon":98},"Menggunakan Java & JVM","\u002Fid\u002Fhow-to\u002Fuse-java","id\u002F02.how-to\u002F12.use-java","simple-icons-openjdk",{"title":100,"path":101,"stem":102,"icon":103},"Menggunakan Flutter & Dart","\u002Fid\u002Fhow-to\u002Fuse-flutter","id\u002F02.how-to\u002F13.use-flutter","simple-icons-flutter",{"title":105,"path":106,"stem":107,"icon":108},"Menggunakan Input RGB Terdekode","\u002Fid\u002Fhow-to\u002Fuse-decoded-rgb","id\u002F02.how-to\u002F14.use-decoded-rgb","lucide-image",{"title":110,"path":111,"stem":112,"children":113,"page":29},"Advance Guide","\u002Fid\u002Fadvance-guide","id\u002F03.advance-guide",[114,119,124,129,134,139,144,149],{"title":115,"path":116,"stem":117,"icon":118},"Model & Tingkatan (Tiers)","\u002Fid\u002Fadvance-guide\u002Fmodels-and-tiers","id\u002F03.advance-guide\u002F01.models-and-tiers","i-ph-cube",{"title":120,"path":121,"stem":122,"icon":123},"OCR Multibahasa","\u002Fid\u002Fadvance-guide\u002Fmultilingual-ocr","id\u002F03.advance-guide\u002F02.multilingual-ocr","i-ph-translate",{"title":125,"path":126,"stem":127,"icon":128},"Rekonstruksi Tata Letak Spasial","\u002Fid\u002Fadvance-guide\u002Fspatial-layout-reconstruction","id\u002F03.advance-guide\u002F03.spatial-layout-reconstruction","i-ph-layout",{"title":130,"path":131,"stem":132,"icon":133},"Pra-pemrosesan & Tuning Gambar","\u002Fid\u002Fadvance-guide\u002Fimage-preprocessing-and-tuning","id\u002F03.advance-guide\u002F04.image-preprocessing-and-tuning","i-ph-sliders",{"title":135,"path":136,"stem":137,"icon":138},"Klasifikasi & Orientasi","\u002Fid\u002Fadvance-guide\u002Fclassification-and-orientation","id\u002F03.advance-guide\u002F05.classification-and-orientation","i-ph-arrows-clockwise",{"title":140,"path":141,"stem":142,"icon":143},"Performa & Tolok Ukur (Benchmarks)","\u002Fid\u002Fadvance-guide\u002Fperformance-and-benchmarks","id\u002F03.advance-guide\u002F06.performance-and-benchmarks","i-ph-chart-line-up",{"title":145,"path":146,"stem":147,"icon":148},"Pemecahan Masalah (Troubleshooting)","\u002Fid\u002Fadvance-guide\u002Ftroubleshooting","id\u002F03.advance-guide\u002F07.troubleshooting","i-ph-wrench",{"title":150,"path":151,"stem":152,"icon":138},"v0.2 ke v0.3","\u002Fid\u002Fadvance-guide\u002Fmigration-guide","id\u002F03.advance-guide\u002F08.migration-guide",{"title":154,"path":155,"stem":156,"children":157,"page":29},"Api Reference","\u002Fid\u002Fapi-reference","id\u002F04.api-reference",[158,163,168],{"title":159,"path":160,"stem":161,"icon":162},"InitializeConfig","\u002Fid\u002Fapi-reference\u002Finitialize-config","id\u002F04.api-reference\u002F01.initialize-config","i-ph-code-block",{"title":164,"path":165,"stem":166,"icon":167},"OcrRunOptions","\u002Fid\u002Fapi-reference\u002Focr-run-options","id\u002F04.api-reference\u002F02.ocr-run-options","i-ph-faders",{"title":169,"path":170,"stem":171,"icon":172},"TextResult & Mode Keluaran","\u002Fid\u002Fapi-reference\u002Ftext-result-and-output","id\u002F04.api-reference\u002F03.text-result-and-output","i-ph-textbox",{"id":174,"title":61,"body":175,"description":2206,"extension":2207,"links":2208,"meta":2209,"navigation":2210,"path":62,"seo":2211,"stem":63,"__hash__":2213},"docs_id\u002Fid\u002F02.how-to\u002F05.use-c-ffi.md",{"type":176,"value":177,"toc":2195},"minimark",[178,201,210,984,987,991,997,1114,1116,1120,2079,2081,2085,2090,2130,2137,2191],[179,180,181,182,186,187,186,190,193,194,186,197,200],"p",{},"RustO! mengekspor C ABI yang stabil melalui pustaka bersama dinamis (",[183,184,185],"code",{},"librusto.so",", ",[183,188,189],{},"librusto.dylib",[183,191,192],{},"rusto.dll",") serta arsip statis (",[183,195,196],{},"librusto.a",[183,198,199],{},"rusto.lib",").",[202,203,205,206,209],"h2",{"id":204},"header-c-rustoh","Header C (",[183,207,208],{},"rusto.h",")",[211,212,217],"pre",{"className":213,"code":214,"language":215,"meta":216,"style":216},"language-c shiki shiki-themes material-theme-lighter github-light github-dark monokai","#ifndef RUSTO_H\n#define RUSTO_H\n\n#include \u003Cstdint.h>\n#include \u003Cstddef.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\u002F\u002F Handle instance mesin buram (opaque)\ntypedef struct ROCRHandle ROCRHandle;\n\n\u002F\u002F Blok hasil deteksi teks yang kompatibel dengan C\ntypedef struct {\n    char *text;\n    float score;\n    float box_x1, box_y1;\n    float box_x2, box_y2;\n    float box_x3, box_y3;\n    float box_x4, box_y4;\n    float frame_width, frame_height;\n    float frame_top, frame_left;\n} CTextResult;\n\n\u002F\u002F 1. Siklus Hidup Mesin\nROCRHandle *rocr_initialize(const char *config_json);\nvoid rocr_free(ROCRHandle *handle);\nconst char *rocr_version(void);\n\n\u002F\u002F 2. Deteksi Teks Terstruktur (Baris \u002F Kata)\nint rocr_detect_text_file(\n    ROCRHandle *handle,\n    const char *image_path,\n    const char *options_json,\n    CTextResult **results_out,\n    size_t *count_out\n);\n\nint rocr_detect_text_data(\n    ROCRHandle *handle,\n    const uint8_t *image_data,\n    size_t image_len,\n    const char *options_json,\n    CTextResult **results_out,\n    size_t *count_out\n);\n\n\u002F\u002F 3. Deteksi Tata Letak Spasial\nchar *rocr_detect_text_file_spatial(\n    ROCRHandle *handle,\n    const char *image_path,\n    const char *options_json\n);\n\nchar *rocr_detect_text_data_spatial(\n    ROCRHandle *handle,\n    const uint8_t *image_data,\n    size_t image_len,\n    const char *options_json\n);\n\n\u002F\u002F 4. Dealokasi Memori\nvoid rocr_free_results(CTextResult *results, size_t count);\nvoid rocr_free_string(char *s);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif \u002F\u002F RUSTO_H\n","c","",[183,218,219,232,240,247,264,276,281,290,310,316,321,328,346,351,357,366,382,393,409,424,439,454,469,484,495,500,506,536,556,574,579,585,597,610,625,639,653,664,669,674,684,695,710,720,733,744,753,758,763,769,782,793,806,818,823,828,840,851,864,873,884,889,894,900,928,947,952,959,965,970,975],{"__ignoreMap":216},[220,221,224,228],"span",{"class":222,"line":223},"line",1,[220,225,227],{"class":226},"sRxSC","#ifndef",[220,229,231],{"class":230},"sD0ED"," RUSTO_H\n",[220,233,235,238],{"class":222,"line":234},2,[220,236,237],{"class":226},"#define",[220,239,231],{"class":230},[220,241,243],{"class":222,"line":242},3,[220,244,246],{"emptyLinePlaceholder":245},true,"\n",[220,248,250,253,257,261],{"class":222,"line":249},4,[220,251,252],{"class":226},"#include",[220,254,256],{"class":255},"siCPE"," \u003C",[220,258,260],{"class":259},"sLACW","stdint.h",[220,262,263],{"class":255},">\n",[220,265,267,269,271,274],{"class":222,"line":266},5,[220,268,252],{"class":226},[220,270,256],{"class":255},[220,272,273],{"class":259},"stddef.h",[220,275,263],{"class":255},[220,277,279],{"class":222,"line":278},6,[220,280,246],{"emptyLinePlaceholder":245},[220,282,284,287],{"class":222,"line":283},7,[220,285,286],{"class":226},"#ifdef",[220,288,289],{"class":230}," __cplusplus\n",[220,291,293,297,300,303,306],{"class":222,"line":292},8,[220,294,296],{"class":295},"sTNss","extern",[220,298,299],{"class":255}," \"",[220,301,302],{"class":259},"C",[220,304,305],{"class":255},"\"",[220,307,309],{"class":308},"swvn1"," {\n",[220,311,313],{"class":222,"line":312},9,[220,314,315],{"class":226},"#endif\n",[220,317,319],{"class":222,"line":318},10,[220,320,246],{"emptyLinePlaceholder":245},[220,322,324],{"class":222,"line":323},11,[220,325,327],{"class":326},"ss7Ak","\u002F\u002F Handle instance mesin buram (opaque)\n",[220,329,331,335,339,343],{"class":222,"line":330},12,[220,332,334],{"class":333},"shWJe","typedef",[220,336,338],{"class":337},"srJo8"," struct",[220,340,342],{"class":341},"ss--_"," ROCRHandle ROCRHandle",[220,344,345],{"class":308},";\n",[220,347,349],{"class":222,"line":348},13,[220,350,246],{"emptyLinePlaceholder":245},[220,352,354],{"class":222,"line":353},14,[220,355,356],{"class":326},"\u002F\u002F Blok hasil deteksi teks yang kompatibel dengan C\n",[220,358,360,362,364],{"class":222,"line":359},15,[220,361,334],{"class":333},[220,363,338],{"class":337},[220,365,309],{"class":308},[220,367,369,372,376,380],{"class":222,"line":368},16,[220,370,371],{"class":337},"    char",[220,373,375],{"class":374},"sGXK2"," *",[220,377,379],{"class":378},"squCx","text",[220,381,345],{"class":308},[220,383,385,388,391],{"class":222,"line":384},17,[220,386,387],{"class":337},"    float",[220,389,390],{"class":378}," score",[220,392,345],{"class":308},[220,394,396,398,401,404,407],{"class":222,"line":395},18,[220,397,387],{"class":337},[220,399,400],{"class":378}," box_x1",[220,402,403],{"class":308},",",[220,405,406],{"class":378}," box_y1",[220,408,345],{"class":308},[220,410,412,414,417,419,422],{"class":222,"line":411},19,[220,413,387],{"class":337},[220,415,416],{"class":378}," box_x2",[220,418,403],{"class":308},[220,420,421],{"class":378}," box_y2",[220,423,345],{"class":308},[220,425,427,429,432,434,437],{"class":222,"line":426},20,[220,428,387],{"class":337},[220,430,431],{"class":378}," box_x3",[220,433,403],{"class":308},[220,435,436],{"class":378}," box_y3",[220,438,345],{"class":308},[220,440,442,444,447,449,452],{"class":222,"line":441},21,[220,443,387],{"class":337},[220,445,446],{"class":378}," box_x4",[220,448,403],{"class":308},[220,450,451],{"class":378}," box_y4",[220,453,345],{"class":308},[220,455,457,459,462,464,467],{"class":222,"line":456},22,[220,458,387],{"class":337},[220,460,461],{"class":378}," frame_width",[220,463,403],{"class":308},[220,465,466],{"class":378}," frame_height",[220,468,345],{"class":308},[220,470,472,474,477,479,482],{"class":222,"line":471},23,[220,473,387],{"class":337},[220,475,476],{"class":378}," frame_top",[220,478,403],{"class":308},[220,480,481],{"class":378}," frame_left",[220,483,345],{"class":308},[220,485,487,490,493],{"class":222,"line":486},24,[220,488,489],{"class":308},"}",[220,491,492],{"class":341}," CTextResult",[220,494,345],{"class":308},[220,496,498],{"class":222,"line":497},25,[220,499,246],{"emptyLinePlaceholder":245},[220,501,503],{"class":222,"line":502},26,[220,504,505],{"class":326},"\u002F\u002F 1. Siklus Hidup Mesin\n",[220,507,509,512,515,518,521,524,527,529,533],{"class":222,"line":508},27,[220,510,511],{"class":341},"ROCRHandle ",[220,513,514],{"class":374},"*",[220,516,517],{"class":230},"rocr_initialize",[220,519,520],{"class":308},"(",[220,522,523],{"class":295},"const",[220,525,526],{"class":337}," char",[220,528,375],{"class":374},[220,530,532],{"class":531},"sQgqH","config_json",[220,534,535],{"class":308},");\n",[220,537,539,542,545,547,549,551,554],{"class":222,"line":538},28,[220,540,541],{"class":337},"void",[220,543,544],{"class":230}," rocr_free",[220,546,520],{"class":308},[220,548,511],{"class":341},[220,550,514],{"class":374},[220,552,553],{"class":531},"handle",[220,555,535],{"class":308},[220,557,559,561,563,565,568,570,572],{"class":222,"line":558},29,[220,560,523],{"class":295},[220,562,526],{"class":337},[220,564,375],{"class":374},[220,566,567],{"class":230},"rocr_version",[220,569,520],{"class":308},[220,571,541],{"class":337},[220,573,535],{"class":308},[220,575,577],{"class":222,"line":576},30,[220,578,246],{"emptyLinePlaceholder":245},[220,580,582],{"class":222,"line":581},31,[220,583,584],{"class":326},"\u002F\u002F 2. Deteksi Teks Terstruktur (Baris \u002F Kata)\n",[220,586,588,591,594],{"class":222,"line":587},32,[220,589,590],{"class":337},"int",[220,592,593],{"class":230}," rocr_detect_text_file",[220,595,596],{"class":308},"(\n",[220,598,600,603,605,607],{"class":222,"line":599},33,[220,601,602],{"class":341},"    ROCRHandle ",[220,604,514],{"class":374},[220,606,553],{"class":531},[220,608,609],{"class":308},",\n",[220,611,613,616,618,620,623],{"class":222,"line":612},34,[220,614,615],{"class":295},"    const",[220,617,526],{"class":337},[220,619,375],{"class":374},[220,621,622],{"class":531},"image_path",[220,624,609],{"class":308},[220,626,628,630,632,634,637],{"class":222,"line":627},35,[220,629,615],{"class":295},[220,631,526],{"class":337},[220,633,375],{"class":374},[220,635,636],{"class":531},"options_json",[220,638,609],{"class":308},[220,640,642,645,648,651],{"class":222,"line":641},36,[220,643,644],{"class":341},"    CTextResult ",[220,646,647],{"class":374},"**",[220,649,650],{"class":531},"results_out",[220,652,609],{"class":308},[220,654,656,659,661],{"class":222,"line":655},37,[220,657,658],{"class":337},"    size_t",[220,660,375],{"class":374},[220,662,663],{"class":341},"count_out\n",[220,665,667],{"class":222,"line":666},38,[220,668,535],{"class":308},[220,670,672],{"class":222,"line":671},39,[220,673,246],{"emptyLinePlaceholder":245},[220,675,677,679,682],{"class":222,"line":676},40,[220,678,590],{"class":337},[220,680,681],{"class":230}," rocr_detect_text_data",[220,683,596],{"class":308},[220,685,687,689,691,693],{"class":222,"line":686},41,[220,688,602],{"class":341},[220,690,514],{"class":374},[220,692,553],{"class":531},[220,694,609],{"class":308},[220,696,698,700,703,705,708],{"class":222,"line":697},42,[220,699,615],{"class":295},[220,701,702],{"class":337}," uint8_t",[220,704,375],{"class":374},[220,706,707],{"class":531},"image_data",[220,709,609],{"class":308},[220,711,713,715,718],{"class":222,"line":712},43,[220,714,658],{"class":337},[220,716,717],{"class":531}," image_len",[220,719,609],{"class":308},[220,721,723,725,727,729,731],{"class":222,"line":722},44,[220,724,615],{"class":295},[220,726,526],{"class":337},[220,728,375],{"class":374},[220,730,636],{"class":531},[220,732,609],{"class":308},[220,734,736,738,740,742],{"class":222,"line":735},45,[220,737,644],{"class":341},[220,739,647],{"class":374},[220,741,650],{"class":531},[220,743,609],{"class":308},[220,745,747,749,751],{"class":222,"line":746},46,[220,748,658],{"class":337},[220,750,375],{"class":374},[220,752,663],{"class":341},[220,754,756],{"class":222,"line":755},47,[220,757,535],{"class":308},[220,759,761],{"class":222,"line":760},48,[220,762,246],{"emptyLinePlaceholder":245},[220,764,766],{"class":222,"line":765},49,[220,767,768],{"class":326},"\u002F\u002F 3. Deteksi Tata Letak Spasial\n",[220,770,772,775,777,780],{"class":222,"line":771},50,[220,773,774],{"class":337},"char",[220,776,375],{"class":374},[220,778,779],{"class":230},"rocr_detect_text_file_spatial",[220,781,596],{"class":308},[220,783,785,787,789,791],{"class":222,"line":784},51,[220,786,602],{"class":341},[220,788,514],{"class":374},[220,790,553],{"class":531},[220,792,609],{"class":308},[220,794,796,798,800,802,804],{"class":222,"line":795},52,[220,797,615],{"class":295},[220,799,526],{"class":337},[220,801,375],{"class":374},[220,803,622],{"class":531},[220,805,609],{"class":308},[220,807,809,811,813,815],{"class":222,"line":808},53,[220,810,615],{"class":295},[220,812,526],{"class":337},[220,814,375],{"class":374},[220,816,817],{"class":341},"options_json\n",[220,819,821],{"class":222,"line":820},54,[220,822,535],{"class":308},[220,824,826],{"class":222,"line":825},55,[220,827,246],{"emptyLinePlaceholder":245},[220,829,831,833,835,838],{"class":222,"line":830},56,[220,832,774],{"class":337},[220,834,375],{"class":374},[220,836,837],{"class":230},"rocr_detect_text_data_spatial",[220,839,596],{"class":308},[220,841,843,845,847,849],{"class":222,"line":842},57,[220,844,602],{"class":341},[220,846,514],{"class":374},[220,848,553],{"class":531},[220,850,609],{"class":308},[220,852,854,856,858,860,862],{"class":222,"line":853},58,[220,855,615],{"class":295},[220,857,702],{"class":337},[220,859,375],{"class":374},[220,861,707],{"class":531},[220,863,609],{"class":308},[220,865,867,869,871],{"class":222,"line":866},59,[220,868,658],{"class":337},[220,870,717],{"class":531},[220,872,609],{"class":308},[220,874,876,878,880,882],{"class":222,"line":875},60,[220,877,615],{"class":295},[220,879,526],{"class":337},[220,881,375],{"class":374},[220,883,817],{"class":341},[220,885,887],{"class":222,"line":886},61,[220,888,535],{"class":308},[220,890,892],{"class":222,"line":891},62,[220,893,246],{"emptyLinePlaceholder":245},[220,895,897],{"class":222,"line":896},63,[220,898,899],{"class":326},"\u002F\u002F 4. Dealokasi Memori\n",[220,901,903,905,908,910,913,915,918,920,923,926],{"class":222,"line":902},64,[220,904,541],{"class":337},[220,906,907],{"class":230}," rocr_free_results",[220,909,520],{"class":308},[220,911,912],{"class":341},"CTextResult ",[220,914,514],{"class":374},[220,916,917],{"class":531},"results",[220,919,403],{"class":308},[220,921,922],{"class":337}," size_t",[220,924,925],{"class":531}," count",[220,927,535],{"class":308},[220,929,931,933,936,938,940,942,945],{"class":222,"line":930},65,[220,932,541],{"class":337},[220,934,935],{"class":230}," rocr_free_string",[220,937,520],{"class":308},[220,939,774],{"class":337},[220,941,375],{"class":374},[220,943,944],{"class":531},"s",[220,946,535],{"class":308},[220,948,950],{"class":222,"line":949},66,[220,951,246],{"emptyLinePlaceholder":245},[220,953,955,957],{"class":222,"line":954},67,[220,956,286],{"class":226},[220,958,289],{"class":230},[220,960,962],{"class":222,"line":961},68,[220,963,964],{"class":341},"}\n",[220,966,968],{"class":222,"line":967},69,[220,969,315],{"class":226},[220,971,973],{"class":222,"line":972},70,[220,974,246],{"emptyLinePlaceholder":245},[220,976,978,981],{"class":222,"line":977},71,[220,979,980],{"class":226},"#endif",[220,982,983],{"class":326}," \u002F\u002F RUSTO_H\n",[985,986],"hr",{},[202,988,990],{"id":989},"referensi-kode-status-return-codes","Referensi Kode Status (Return Codes)",[179,992,993,994,996],{},"Fungsi dengan status pengembalian ",[183,995,590],{}," menggunakan kode kesalahan berikut:",[998,999,1000,1016],"table",{},[1001,1002,1003],"thead",{},[1004,1005,1006,1010,1013],"tr",{},[1007,1008,1009],"th",{},"Kode",[1007,1011,1012],{},"Konstanta",[1007,1014,1015],{},"Makna",[1017,1018,1019,1035,1050,1065,1080,1095],"tbody",{},[1004,1020,1021,1027,1032],{},[1022,1023,1024],"td",{},[183,1025,1026],{},"0",[1022,1028,1029],{},[183,1030,1031],{},"ROCR_OK",[1022,1033,1034],{},"Operasi berhasil.",[1004,1036,1037,1042,1047],{},[1022,1038,1039],{},[183,1040,1041],{},"-1",[1022,1043,1044],{},[183,1045,1046],{},"ROCR_ERR_NULL_PTR",[1022,1048,1049],{},"Pointer null diteruskan pada argumen yang wajib diisi.",[1004,1051,1052,1057,1062],{},[1022,1053,1054],{},[183,1055,1056],{},"-2",[1022,1058,1059],{},[183,1060,1061],{},"ROCR_ERR_INVALID_PATH",[1022,1063,1064],{},"Path berkas tidak valid atau tidak ditemukan.",[1004,1066,1067,1072,1077],{},[1022,1068,1069],{},[183,1070,1071],{},"-3",[1022,1073,1074],{},[183,1075,1076],{},"ROCR_ERR_ENGINE",[1022,1078,1079],{},"Kesalahan internal mesin inferensi atau deteksi OCR.",[1004,1081,1082,1087,1092],{},[1022,1083,1084],{},[183,1085,1086],{},"-4",[1022,1088,1089],{},[183,1090,1091],{},"ROCR_ERR_INVALID_OPTIONS",[1022,1093,1094],{},"Kesalahan sintaks atau validasi JSON opsi.",[1004,1096,1097,1102,1107],{},[1022,1098,1099],{},[183,1100,1101],{},"-5",[1022,1103,1104],{},[183,1105,1106],{},"ROCR_ERR_MODE_MISMATCH",[1022,1108,1109,1110,1113],{},"Mode opsi ",[183,1111,1112],{},"output"," tidak cocok dengan fungsi C yang dipanggil.",[985,1115],{},[202,1117,1119],{"id":1118},"contoh-aplikasi-c","Contoh Aplikasi C",[211,1121,1123],{"className":213,"code":1122,"language":215,"meta":216,"style":216},"#include \u003Cstdio.h>\n#include \u003Cstdlib.h>\n#include \"rusto.h\"\n\nint main() {\n    printf(\"Versi RustO!: %s\\n\", rocr_version());\n\n    \u002F\u002F 1. Inisialisasi mesin dengan konfigurasi JSON\n    const char *init_json =\n        \"{\"\n        \"  \\\"template\\\": \\\"ppv6\\\",\"\n        \"  \\\"detection\\\": { \\\"modelPath\\\": \\\"models\u002Fdet.rten\\\" },\"\n        \"  \\\"recognition\\\": { \\\"modelPath\\\": \\\"models\u002Frec.rten\\\", \\\"dictPath\\\": \\\"models\u002Fdict.txt\\\" }\"\n        \"}\";\n\n    ROCRHandle *engine = rocr_initialize(init_json);\n    if (!engine) {\n        fprintf(stderr, \"Gagal menginisialisasi mesin RustO!.\\n\");\n        return 1;\n    }\n\n    \u002F\u002F 2. Jalankan deteksi teks terstruktur\n    const char *options_json = \"{\\\"output\\\":\\\"lines\\\",\\\"textScore\\\":0.5}\";\n    CTextResult *results = NULL;\n    size_t count = 0;\n\n    int status = rocr_detect_text_file(engine, \"receipt.jpg\", options_json, &results, &count);\n    if (status == 0) {\n        printf(\"Ditemukan %zu blok teks:\\n\", count);\n        for (size_t i = 0; i \u003C count; i++) {\n            printf(\"[%zu] %s (Skor: %.2f) di (%.1f, %.1f) [%.1fx%.1f]\\n\",\n                i, results[i].text, results[i].score,\n                results[i].frame_left, results[i].frame_top,\n                results[i].frame_width, results[i].frame_height\n            );\n        }\n        \u002F\u002F Selalu bebaskan hasil terstruktur\n        rocr_free_results(results, count);\n    } else {\n        fprintf(stderr, \"Kode kesalahan OCR: %d\\n\", status);\n    }\n\n    \u002F\u002F 3. Jalankan rekonstruksi tata letak spasial\n    const char *spatial_opts = \"{\\\"output\\\":\\\"spatial\\\",\\\"lineYThreshold\\\":0.5,\\\"wordXThreshold\\\":0.4}\";\n    char *spatial_text = rocr_detect_text_file_spatial(engine, \"receipt.jpg\", spatial_opts);\n    if (spatial_text) {\n        printf(\"\\n--- Tata Letak Spasial ---\\n%s\\n\", spatial_text);\n        \u002F\u002F Selalu bebaskan alokasi string spasial\n        rocr_free_string(spatial_text);\n    }\n\n    \u002F\u002F 4. Dealokasi instans mesin\n    rocr_free(engine);\n    return 0;\n}\n",[183,1124,1125,1136,1147,1158,1162,1174,1204,1208,1213,1227,1237,1264,1299,1350,1360,1364,1386,1404,1427,1438,1443,1447,1452,1501,1518,1532,1536,1582,1600,1628,1667,1721,1757,1786,1812,1817,1822,1827,1842,1852,1881,1885,1889,1894,1952,1985,1998,2026,2031,2042,2046,2050,2055,2066,2075],{"__ignoreMap":216},[220,1126,1127,1129,1131,1134],{"class":222,"line":223},[220,1128,252],{"class":226},[220,1130,256],{"class":255},[220,1132,1133],{"class":259},"stdio.h",[220,1135,263],{"class":255},[220,1137,1138,1140,1142,1145],{"class":222,"line":234},[220,1139,252],{"class":226},[220,1141,256],{"class":255},[220,1143,1144],{"class":259},"stdlib.h",[220,1146,263],{"class":255},[220,1148,1149,1151,1153,1155],{"class":222,"line":242},[220,1150,252],{"class":226},[220,1152,299],{"class":255},[220,1154,208],{"class":259},[220,1156,1157],{"class":255},"\"\n",[220,1159,1160],{"class":222,"line":249},[220,1161,246],{"emptyLinePlaceholder":245},[220,1163,1164,1166,1169,1172],{"class":222,"line":266},[220,1165,590],{"class":337},[220,1167,1168],{"class":230}," main",[220,1170,1171],{"class":308},"()",[220,1173,309],{"class":308},[220,1175,1176,1179,1181,1183,1186,1190,1194,1196,1198,1201],{"class":222,"line":278},[220,1177,1178],{"class":230},"    printf",[220,1180,520],{"class":308},[220,1182,305],{"class":255},[220,1184,1185],{"class":259},"Versi RustO!: ",[220,1187,1189],{"class":1188},"sYoWi","%s",[220,1191,1193],{"class":1192},"sQeA1","\\n",[220,1195,305],{"class":255},[220,1197,403],{"class":308},[220,1199,1200],{"class":230}," rocr_version",[220,1202,1203],{"class":308},"());\n",[220,1205,1206],{"class":222,"line":283},[220,1207,246],{"emptyLinePlaceholder":245},[220,1209,1210],{"class":222,"line":292},[220,1211,1212],{"class":326},"    \u002F\u002F 1. Inisialisasi mesin dengan konfigurasi JSON\n",[220,1214,1215,1217,1219,1221,1224],{"class":222,"line":312},[220,1216,615],{"class":295},[220,1218,526],{"class":337},[220,1220,375],{"class":374},[220,1222,1223],{"class":378},"init_json ",[220,1225,1226],{"class":374},"=\n",[220,1228,1229,1232,1235],{"class":222,"line":318},[220,1230,1231],{"class":255},"        \"",[220,1233,1234],{"class":259},"{",[220,1236,1157],{"class":255},[220,1238,1239,1241,1244,1247,1250,1253,1255,1258,1260,1262],{"class":222,"line":323},[220,1240,1231],{"class":255},[220,1242,1243],{"class":1192},"  \\\"",[220,1245,1246],{"class":259},"template",[220,1248,1249],{"class":1192},"\\\"",[220,1251,1252],{"class":259},": ",[220,1254,1249],{"class":1192},[220,1256,1257],{"class":259},"ppv6",[220,1259,1249],{"class":1192},[220,1261,403],{"class":259},[220,1263,1157],{"class":255},[220,1265,1266,1268,1270,1273,1275,1278,1280,1283,1285,1287,1289,1292,1294,1297],{"class":222,"line":330},[220,1267,1231],{"class":255},[220,1269,1243],{"class":1192},[220,1271,1272],{"class":259},"detection",[220,1274,1249],{"class":1192},[220,1276,1277],{"class":259},": { ",[220,1279,1249],{"class":1192},[220,1281,1282],{"class":259},"modelPath",[220,1284,1249],{"class":1192},[220,1286,1252],{"class":259},[220,1288,1249],{"class":1192},[220,1290,1291],{"class":259},"models\u002Fdet.rten",[220,1293,1249],{"class":1192},[220,1295,1296],{"class":259}," },",[220,1298,1157],{"class":255},[220,1300,1301,1303,1305,1308,1310,1312,1314,1316,1318,1320,1322,1325,1327,1329,1331,1334,1336,1338,1340,1343,1345,1348],{"class":222,"line":348},[220,1302,1231],{"class":255},[220,1304,1243],{"class":1192},[220,1306,1307],{"class":259},"recognition",[220,1309,1249],{"class":1192},[220,1311,1277],{"class":259},[220,1313,1249],{"class":1192},[220,1315,1282],{"class":259},[220,1317,1249],{"class":1192},[220,1319,1252],{"class":259},[220,1321,1249],{"class":1192},[220,1323,1324],{"class":259},"models\u002Frec.rten",[220,1326,1249],{"class":1192},[220,1328,186],{"class":259},[220,1330,1249],{"class":1192},[220,1332,1333],{"class":259},"dictPath",[220,1335,1249],{"class":1192},[220,1337,1252],{"class":259},[220,1339,1249],{"class":1192},[220,1341,1342],{"class":259},"models\u002Fdict.txt",[220,1344,1249],{"class":1192},[220,1346,1347],{"class":259}," }",[220,1349,1157],{"class":255},[220,1351,1352,1354,1356,1358],{"class":222,"line":353},[220,1353,1231],{"class":255},[220,1355,489],{"class":259},[220,1357,305],{"class":255},[220,1359,345],{"class":308},[220,1361,1362],{"class":222,"line":359},[220,1363,246],{"emptyLinePlaceholder":245},[220,1365,1366,1368,1370,1373,1376,1379,1381,1384],{"class":222,"line":368},[220,1367,602],{"class":378},[220,1369,514],{"class":374},[220,1371,1372],{"class":378},"engine ",[220,1374,1375],{"class":374},"=",[220,1377,1378],{"class":230}," rocr_initialize",[220,1380,520],{"class":308},[220,1382,1383],{"class":378},"init_json",[220,1385,535],{"class":308},[220,1387,1388,1391,1394,1397,1400,1402],{"class":222,"line":384},[220,1389,1390],{"class":226},"    if",[220,1392,1393],{"class":308}," (",[220,1395,1396],{"class":374},"!",[220,1398,1399],{"class":378},"engine",[220,1401,209],{"class":308},[220,1403,309],{"class":308},[220,1405,1406,1409,1411,1414,1416,1418,1421,1423,1425],{"class":222,"line":395},[220,1407,1408],{"class":230},"        fprintf",[220,1410,520],{"class":308},[220,1412,1413],{"class":378},"stderr",[220,1415,403],{"class":308},[220,1417,299],{"class":255},[220,1419,1420],{"class":259},"Gagal menginisialisasi mesin RustO!.",[220,1422,1193],{"class":1192},[220,1424,305],{"class":255},[220,1426,535],{"class":308},[220,1428,1429,1432,1436],{"class":222,"line":411},[220,1430,1431],{"class":226},"        return",[220,1433,1435],{"class":1434},"sYThS"," 1",[220,1437,345],{"class":308},[220,1439,1440],{"class":222,"line":426},[220,1441,1442],{"class":308},"    }\n",[220,1444,1445],{"class":222,"line":441},[220,1446,246],{"emptyLinePlaceholder":245},[220,1448,1449],{"class":222,"line":456},[220,1450,1451],{"class":326},"    \u002F\u002F 2. Jalankan deteksi teks terstruktur\n",[220,1453,1454,1456,1458,1460,1463,1465,1467,1469,1471,1473,1475,1478,1480,1483,1485,1487,1489,1492,1494,1497,1499],{"class":222,"line":471},[220,1455,615],{"class":295},[220,1457,526],{"class":337},[220,1459,375],{"class":374},[220,1461,1462],{"class":378},"options_json ",[220,1464,1375],{"class":374},[220,1466,299],{"class":255},[220,1468,1234],{"class":259},[220,1470,1249],{"class":1192},[220,1472,1112],{"class":259},[220,1474,1249],{"class":1192},[220,1476,1477],{"class":259},":",[220,1479,1249],{"class":1192},[220,1481,1482],{"class":259},"lines",[220,1484,1249],{"class":1192},[220,1486,403],{"class":259},[220,1488,1249],{"class":1192},[220,1490,1491],{"class":259},"textScore",[220,1493,1249],{"class":1192},[220,1495,1496],{"class":259},":0.5}",[220,1498,305],{"class":255},[220,1500,345],{"class":308},[220,1502,1503,1505,1507,1510,1512,1516],{"class":222,"line":486},[220,1504,644],{"class":378},[220,1506,514],{"class":374},[220,1508,1509],{"class":378},"results ",[220,1511,1375],{"class":374},[220,1513,1515],{"class":1514},"sMTiH"," NULL",[220,1517,345],{"class":308},[220,1519,1520,1522,1525,1527,1530],{"class":222,"line":497},[220,1521,658],{"class":337},[220,1523,1524],{"class":378}," count ",[220,1526,1375],{"class":374},[220,1528,1529],{"class":1434}," 0",[220,1531,345],{"class":308},[220,1533,1534],{"class":222,"line":502},[220,1535,246],{"emptyLinePlaceholder":245},[220,1537,1538,1541,1544,1546,1548,1550,1552,1554,1556,1559,1561,1563,1566,1568,1571,1573,1575,1577,1580],{"class":222,"line":508},[220,1539,1540],{"class":337},"    int",[220,1542,1543],{"class":378}," status ",[220,1545,1375],{"class":374},[220,1547,593],{"class":230},[220,1549,520],{"class":308},[220,1551,1399],{"class":378},[220,1553,403],{"class":308},[220,1555,299],{"class":255},[220,1557,1558],{"class":259},"receipt.jpg",[220,1560,305],{"class":255},[220,1562,403],{"class":308},[220,1564,1565],{"class":378}," options_json",[220,1567,403],{"class":308},[220,1569,1570],{"class":374}," &",[220,1572,917],{"class":378},[220,1574,403],{"class":308},[220,1576,1570],{"class":374},[220,1578,1579],{"class":378},"count",[220,1581,535],{"class":308},[220,1583,1584,1586,1588,1591,1594,1596,1598],{"class":222,"line":538},[220,1585,1390],{"class":226},[220,1587,1393],{"class":308},[220,1589,1590],{"class":378},"status ",[220,1592,1593],{"class":374},"==",[220,1595,1529],{"class":1434},[220,1597,209],{"class":308},[220,1599,309],{"class":308},[220,1601,1602,1605,1607,1609,1612,1615,1618,1620,1622,1624,1626],{"class":222,"line":558},[220,1603,1604],{"class":230},"        printf",[220,1606,520],{"class":308},[220,1608,305],{"class":255},[220,1610,1611],{"class":259},"Ditemukan ",[220,1613,1614],{"class":1188},"%zu",[220,1616,1617],{"class":259}," blok teks:",[220,1619,1193],{"class":1192},[220,1621,305],{"class":255},[220,1623,403],{"class":308},[220,1625,925],{"class":378},[220,1627,535],{"class":308},[220,1629,1630,1633,1635,1638,1641,1643,1645,1648,1650,1653,1655,1657,1660,1663,1665],{"class":222,"line":576},[220,1631,1632],{"class":226},"        for",[220,1634,1393],{"class":308},[220,1636,1637],{"class":337},"size_t",[220,1639,1640],{"class":378}," i ",[220,1642,1375],{"class":374},[220,1644,1529],{"class":1434},[220,1646,1647],{"class":308},";",[220,1649,1640],{"class":378},[220,1651,1652],{"class":374},"\u003C",[220,1654,925],{"class":378},[220,1656,1647],{"class":308},[220,1658,1659],{"class":378}," i",[220,1661,1662],{"class":374},"++",[220,1664,209],{"class":308},[220,1666,309],{"class":308},[220,1668,1669,1672,1674,1676,1679,1681,1684,1686,1689,1692,1695,1698,1700,1702,1705,1707,1710,1712,1715,1717,1719],{"class":222,"line":581},[220,1670,1671],{"class":230},"            printf",[220,1673,520],{"class":308},[220,1675,305],{"class":255},[220,1677,1678],{"class":259},"[",[220,1680,1614],{"class":1188},[220,1682,1683],{"class":259},"] ",[220,1685,1189],{"class":1188},[220,1687,1688],{"class":259}," (Skor: ",[220,1690,1691],{"class":1188},"%.2f",[220,1693,1694],{"class":259},") di (",[220,1696,1697],{"class":1188},"%.1f",[220,1699,186],{"class":259},[220,1701,1697],{"class":1188},[220,1703,1704],{"class":259},") [",[220,1706,1697],{"class":1188},[220,1708,1709],{"class":259},"x",[220,1711,1697],{"class":1188},[220,1713,1714],{"class":259},"]",[220,1716,1193],{"class":1192},[220,1718,305],{"class":255},[220,1720,609],{"class":308},[220,1722,1723,1726,1728,1732,1734,1737,1740,1742,1744,1746,1748,1750,1752,1755],{"class":222,"line":587},[220,1724,1725],{"class":378},"                i",[220,1727,403],{"class":308},[220,1729,1731],{"class":1730},"s94S9"," results",[220,1733,1678],{"class":308},[220,1735,1736],{"class":378},"i",[220,1738,1739],{"class":308},"].",[220,1741,379],{"class":341},[220,1743,403],{"class":308},[220,1745,1731],{"class":1730},[220,1747,1678],{"class":308},[220,1749,1736],{"class":378},[220,1751,1739],{"class":308},[220,1753,1754],{"class":341},"score",[220,1756,609],{"class":308},[220,1758,1759,1762,1764,1766,1768,1771,1773,1775,1777,1779,1781,1784],{"class":222,"line":599},[220,1760,1761],{"class":1730},"                results",[220,1763,1678],{"class":308},[220,1765,1736],{"class":378},[220,1767,1739],{"class":308},[220,1769,1770],{"class":341},"frame_left",[220,1772,403],{"class":308},[220,1774,1731],{"class":1730},[220,1776,1678],{"class":308},[220,1778,1736],{"class":378},[220,1780,1739],{"class":308},[220,1782,1783],{"class":341},"frame_top",[220,1785,609],{"class":308},[220,1787,1788,1790,1792,1794,1796,1799,1801,1803,1805,1807,1809],{"class":222,"line":612},[220,1789,1761],{"class":1730},[220,1791,1678],{"class":308},[220,1793,1736],{"class":378},[220,1795,1739],{"class":308},[220,1797,1798],{"class":341},"frame_width",[220,1800,403],{"class":308},[220,1802,1731],{"class":1730},[220,1804,1678],{"class":308},[220,1806,1736],{"class":378},[220,1808,1739],{"class":308},[220,1810,1811],{"class":341},"frame_height\n",[220,1813,1814],{"class":222,"line":627},[220,1815,1816],{"class":308},"            );\n",[220,1818,1819],{"class":222,"line":641},[220,1820,1821],{"class":308},"        }\n",[220,1823,1824],{"class":222,"line":655},[220,1825,1826],{"class":326},"        \u002F\u002F Selalu bebaskan hasil terstruktur\n",[220,1828,1829,1832,1834,1836,1838,1840],{"class":222,"line":666},[220,1830,1831],{"class":230},"        rocr_free_results",[220,1833,520],{"class":308},[220,1835,917],{"class":378},[220,1837,403],{"class":308},[220,1839,925],{"class":378},[220,1841,535],{"class":308},[220,1843,1844,1847,1850],{"class":222,"line":671},[220,1845,1846],{"class":308},"    }",[220,1848,1849],{"class":226}," else",[220,1851,309],{"class":308},[220,1853,1854,1856,1858,1860,1862,1864,1867,1870,1872,1874,1876,1879],{"class":222,"line":676},[220,1855,1408],{"class":230},[220,1857,520],{"class":308},[220,1859,1413],{"class":378},[220,1861,403],{"class":308},[220,1863,299],{"class":255},[220,1865,1866],{"class":259},"Kode kesalahan OCR: ",[220,1868,1869],{"class":1188},"%d",[220,1871,1193],{"class":1192},[220,1873,305],{"class":255},[220,1875,403],{"class":308},[220,1877,1878],{"class":378}," status",[220,1880,535],{"class":308},[220,1882,1883],{"class":222,"line":686},[220,1884,1442],{"class":308},[220,1886,1887],{"class":222,"line":697},[220,1888,246],{"emptyLinePlaceholder":245},[220,1890,1891],{"class":222,"line":712},[220,1892,1893],{"class":326},"    \u002F\u002F 3. Jalankan rekonstruksi tata letak spasial\n",[220,1895,1896,1898,1900,1902,1905,1907,1909,1911,1913,1915,1917,1919,1921,1924,1926,1928,1930,1933,1935,1938,1940,1943,1945,1948,1950],{"class":222,"line":722},[220,1897,615],{"class":295},[220,1899,526],{"class":337},[220,1901,375],{"class":374},[220,1903,1904],{"class":378},"spatial_opts ",[220,1906,1375],{"class":374},[220,1908,299],{"class":255},[220,1910,1234],{"class":259},[220,1912,1249],{"class":1192},[220,1914,1112],{"class":259},[220,1916,1249],{"class":1192},[220,1918,1477],{"class":259},[220,1920,1249],{"class":1192},[220,1922,1923],{"class":259},"spatial",[220,1925,1249],{"class":1192},[220,1927,403],{"class":259},[220,1929,1249],{"class":1192},[220,1931,1932],{"class":259},"lineYThreshold",[220,1934,1249],{"class":1192},[220,1936,1937],{"class":259},":0.5,",[220,1939,1249],{"class":1192},[220,1941,1942],{"class":259},"wordXThreshold",[220,1944,1249],{"class":1192},[220,1946,1947],{"class":259},":0.4}",[220,1949,305],{"class":255},[220,1951,345],{"class":308},[220,1953,1954,1956,1958,1961,1963,1966,1968,1970,1972,1974,1976,1978,1980,1983],{"class":222,"line":735},[220,1955,371],{"class":337},[220,1957,375],{"class":374},[220,1959,1960],{"class":378},"spatial_text ",[220,1962,1375],{"class":374},[220,1964,1965],{"class":230}," rocr_detect_text_file_spatial",[220,1967,520],{"class":308},[220,1969,1399],{"class":378},[220,1971,403],{"class":308},[220,1973,299],{"class":255},[220,1975,1558],{"class":259},[220,1977,305],{"class":255},[220,1979,403],{"class":308},[220,1981,1982],{"class":378}," spatial_opts",[220,1984,535],{"class":308},[220,1986,1987,1989,1991,1994,1996],{"class":222,"line":746},[220,1988,1390],{"class":226},[220,1990,1393],{"class":308},[220,1992,1993],{"class":378},"spatial_text",[220,1995,209],{"class":308},[220,1997,309],{"class":308},[220,1999,2000,2002,2004,2006,2008,2011,2013,2015,2017,2019,2021,2024],{"class":222,"line":755},[220,2001,1604],{"class":230},[220,2003,520],{"class":308},[220,2005,305],{"class":255},[220,2007,1193],{"class":1192},[220,2009,2010],{"class":259},"--- Tata Letak Spasial ---",[220,2012,1193],{"class":1192},[220,2014,1189],{"class":1188},[220,2016,1193],{"class":1192},[220,2018,305],{"class":255},[220,2020,403],{"class":308},[220,2022,2023],{"class":378}," spatial_text",[220,2025,535],{"class":308},[220,2027,2028],{"class":222,"line":760},[220,2029,2030],{"class":326},"        \u002F\u002F Selalu bebaskan alokasi string spasial\n",[220,2032,2033,2036,2038,2040],{"class":222,"line":765},[220,2034,2035],{"class":230},"        rocr_free_string",[220,2037,520],{"class":308},[220,2039,1993],{"class":378},[220,2041,535],{"class":308},[220,2043,2044],{"class":222,"line":771},[220,2045,1442],{"class":308},[220,2047,2048],{"class":222,"line":784},[220,2049,246],{"emptyLinePlaceholder":245},[220,2051,2052],{"class":222,"line":795},[220,2053,2054],{"class":326},"    \u002F\u002F 4. Dealokasi instans mesin\n",[220,2056,2057,2060,2062,2064],{"class":222,"line":808},[220,2058,2059],{"class":230},"    rocr_free",[220,2061,520],{"class":308},[220,2063,1399],{"class":378},[220,2065,535],{"class":308},[220,2067,2068,2071,2073],{"class":222,"line":820},[220,2069,2070],{"class":226},"    return",[220,2072,1529],{"class":1434},[220,2074,345],{"class":308},[220,2076,2077],{"class":222,"line":825},[220,2078,964],{"class":308},[985,2080],{},[202,2082,2084],{"id":2083},"kompilasi-dan-penautan-linking","Kompilasi dan Penautan (Linking)",[2086,2087,2089],"h3",{"id":2088},"menggunakan-gcc-clang","Menggunakan GCC \u002F Clang",[211,2091,2095],{"className":2092,"code":2093,"language":2094,"meta":216,"style":216},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","gcc main.c -I. -L. -lrusto -Wl,-rpath,. -o ocr_demo\n.\u002Focr_demo\n","bash",[183,2096,2097,2125],{"__ignoreMap":216},[220,2098,2099,2103,2106,2110,2113,2116,2119,2122],{"class":222,"line":223},[220,2100,2102],{"class":2101},"sR7ES","gcc",[220,2104,2105],{"class":259}," main.c",[220,2107,2109],{"class":2108},"sFhLe"," -I.",[220,2111,2112],{"class":2108}," -L.",[220,2114,2115],{"class":2108}," -lrusto",[220,2117,2118],{"class":2108}," -Wl,-rpath,.",[220,2120,2121],{"class":2108}," -o",[220,2123,2124],{"class":259}," ocr_demo\n",[220,2126,2127],{"class":222,"line":234},[220,2128,2129],{"class":2101},".\u002Focr_demo\n",[2086,2131,2133,2134,209],{"id":2132},"menggunakan-cmake-cmakeliststxt","Menggunakan CMake (",[183,2135,2136],{},"CMakeLists.txt",[211,2138,2142],{"className":2139,"code":2140,"language":2141,"meta":216,"style":216},"language-cmake shiki shiki-themes material-theme-lighter github-light github-dark monokai","cmake_minimum_required(VERSION 3.15)\nproject(OcrApp C)\n\nadd_executable(ocr_app main.c)\n\n# Sertakan direktori header\ntarget_include_directories(ocr_app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})\n\n# Tautkan pustaka bersama librusto\ntarget_link_libraries(ocr_app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}\u002Flibrusto.so)\n","cmake",[183,2143,2144,2149,2154,2158,2163,2167,2172,2177,2181,2186],{"__ignoreMap":216},[220,2145,2146],{"class":222,"line":223},[220,2147,2148],{},"cmake_minimum_required(VERSION 3.15)\n",[220,2150,2151],{"class":222,"line":234},[220,2152,2153],{},"project(OcrApp C)\n",[220,2155,2156],{"class":222,"line":242},[220,2157,246],{"emptyLinePlaceholder":245},[220,2159,2160],{"class":222,"line":249},[220,2161,2162],{},"add_executable(ocr_app main.c)\n",[220,2164,2165],{"class":222,"line":266},[220,2166,246],{"emptyLinePlaceholder":245},[220,2168,2169],{"class":222,"line":278},[220,2170,2171],{},"# Sertakan direktori header\n",[220,2173,2174],{"class":222,"line":283},[220,2175,2176],{},"target_include_directories(ocr_app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})\n",[220,2178,2179],{"class":222,"line":292},[220,2180,246],{"emptyLinePlaceholder":245},[220,2182,2183],{"class":222,"line":312},[220,2184,2185],{},"# Tautkan pustaka bersama librusto\n",[220,2187,2188],{"class":222,"line":318},[220,2189,2190],{},"target_link_libraries(ocr_app PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}\u002Flibrusto.so)\n",[2192,2193,2194],"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 .sD0ED, html code.shiki .sD0ED{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}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 .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}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 .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 .shWJe, html code.shiki .shWJe{--shiki-light:#F76D47;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}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 .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--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 .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 .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 .sYoWi, html code.shiki .sYoWi{--shiki-light:#E53935;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}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 .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--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 .s94S9, html code.shiki .s94S9{--shiki-light:#90A4AE;--shiki-default:#E36209;--shiki-dark:#FFAB70;--shiki-sepia:#F8F8F2}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}",{"title":216,"searchDepth":234,"depth":234,"links":2196},[2197,2199,2200,2201],{"id":204,"depth":234,"text":2198},"Header C (rusto.h)",{"id":989,"depth":234,"text":990},{"id":1118,"depth":234,"text":1119},{"id":2083,"depth":234,"text":2084,"children":2202},[2203,2204],{"id":2088,"depth":242,"text":2089},{"id":2132,"depth":242,"text":2205},"Menggunakan CMake (CMakeLists.txt)","Panduan integrasi C \u002F C++ dan Foreign Function Interface (FFI) untuk RustO!.","md",null,{},{"icon":64},{"title":2212,"description":2206},"Menggunakan C FFI - RustO!","eHnFVZ8oIrWWwg4wLwLcISlvy4av6DcSlMTWTNDNe2s",[2215,2217],{"title":56,"path":57,"stem":58,"description":2216,"icon":59,"children":-1},"Penggunaan RustO! pada aplikasi Android Kotlin dan Jetpack Compose via JitPack.",{"title":66,"path":67,"stem":68,"description":2218,"icon":69,"children":-1},"Penggunaan antarmuka baris perintah (CLI), pemrosesan batch, dan opsi pemformatan keluaran untuk RustO!.",1792905890544]