This blog is about programming and other technological things. Written by someone developing software for fun and professionally for longer than I want to admit and in more programming languages that I can remember
I received a post from a friend of mine of a guy who developed games in rust and who also developed a small game engine in rust ranting about the language and about the borrow checker.
I sympathize with the guy - up to a certain point - as I had a similar experience
... more ...
One common way to deal with serialised data in C++ is to map to a struct, but in Rust with memory ownership and some smart memory optimizations, it is a little more complicated.
For example, let's say a producer in C++ serialises this message:
struct book_msg {
uint8_t major_version, // byte 0: message major version
uint8_t minor_version, // byte 1: message minor version
uint8_t msg_type, // byte 2: message type
uint8_t title[20] // byte 3-23: title of the book
}
// ....
auto msg = create_msg();
comm.send(&msg, sizeof(book_msg));
How can we deserialise that in Rust?
... more ...
In a previous post, I wanted to deserialise a date from a Toml file and implemented the Deserialize trait for a type NaiveDate. When I was implementing metrics, I had to do it again, but implement serialise and deserialise for NaiveDate and I found another way, possibly simpler, to serialise and deserialise NaiveDate.
First: add derive support to your Cargo.toml
... more ...
When implementing a new configuration parameter for Texted, I needed something to represent the date the blog started.
When looking into the TOML website, I was fortunate to discover that it has a data type for dates, so I could create the new parameter
blog_start_date = 2016-06-25
However, my fortune was gone as I found that the Toml crate does not support deserialising.
... more ...
When implementing tags for Texted2, I had a list of tags being:
let tags: Vec<(&str, u32)>; // Tag name, number of posts containing this tag
And I need to sort it by the second item of the tuple, the tag count.
... more ...
Some years ago, I create a blog application in D and called Texted. The idea that time was to learn D using a project. This time, to learn Rust, I created a new version of that same blog application, but faster and improved.
I present you, texted2!
https://gitlab.com/thiagomg/texted2/
... more ...
A very important part of any software are the unit tests, after all, they help us verifying that the cases that are in our heads are indeed correctly implemented and also that whoever is the next lucky fellow changing our code in the future (it might be ourselves!) will feel confident that their change won't break the application.
Rust implements tests in the same file that you are implementing your functions. I will first show one example and later explain how it works.
First, let's see a piece of code I used in a tool to generate posts for my newly rewritten blog system Texted2
... more ...
This blog is about programming and other technological things. Written by someone developing software for fun and professionally for longer than I want to admit and in more programming languages that I can remember