<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><p style="background-color:rgb(255,255,255);color:rgb(51,51,51);margin-top:0px;margin-bottom:16px;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px">Hi all,</p><p style="background-color:rgb(255,255,255);color:rgb(51,51,51);margin-top:0px;margin-bottom:16px;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px"><span style="background-color:rgb(255,255,255);color:rgb(51,51,51)">I’ll outline the progress from Week 3 of the Rust–UNO binding project.<br><br>The focus this week was on improving code quality, enhancing trait implementations, refining memory handling, and making further progress on the FFI infrastructure to support UNO types and integrate more cleanly with the LibreOffice runtime.<br><br>The <code>Debug</code> and <code>Display</code> traits were improved so that outputs now correctly show strings rather than raw pointers. I also refined the <code>PartialEq</code> trait by replacing <code>to_string()</code> with a direct and more efficient unsafe comparison, which avoids unnecessary conversions and improves performance. I also considered the <code>Hash</code> trait, as currently <code>OUString</code> can’t be used with structures like <code>HashMap</code> or <code>HashSet</code>, but haven't implemented it yet.<br><br>I reorganized testing by separating the Rust-side unit tests from the integrated ones and placed them in dedicated files. I also added trait-specific tests and memory drop tests, which I ran through Valgrind to ensure safe memory handling.</span></p><p style="background-color:rgb(255,255,255);color:rgb(51,51,51);margin-top:0px;margin-bottom:16px;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px"><span style="background-color:rgb(255,255,255);color:rgb(51,51,51)">Support for the UNO <code>Type</code> object has been implemented, including its constructors, and the integration now allows calling Rust from C through our FFI system. everything is now working as expected within LibreOffice’s build environment.</span></p><p style="background-color:rgb(255,255,255);color:rgb(51,51,51);margin-top:0px;margin-bottom:16px;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px"><span style="background-color:rgb(255,255,255);color:rgb(51,51,51)">In the coming week, I’ll focus on understanding how the UNO bridges work and how they are implemented, particularly the role of the maker functions and how UNO mapping works between components. At the same time, I’ll continue expanding support for core UNO types to ensure that the Rust bindings can handle more real-world use cases.</span></p><p style="background-color:rgb(255,255,255);color:rgb(51,51,51);margin-top:0px;margin-bottom:16px;font-family:"Helvetica Neue",Helvetica,"Segoe UI",Arial,freesans,sans-serif;font-size:16px"><span style="background-color:rgb(255,255,255);color:rgb(51,51,51)"><br>Best regards,<br>Mohamed<br><br></span></p></div></div></div></div></div></div></div>