<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Rust_%3A_serde</id>
	<title>Rust : serde - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.squi.fr/index.php?action=history&amp;feed=atom&amp;title=Rust_%3A_serde"/>
	<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Rust_:_serde&amp;action=history"/>
	<updated>2026-06-12T01:35:20Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.squi.fr/index.php?title=Rust_:_serde&amp;diff=2444&amp;oldid=prev</id>
		<title>Justine : Page créée avec « = Serde (en vite fait) = [https://serde.rs/ Serde] est une librairie Rust que je vois absolument partout. Son objet est la sérialisation et la désérialisation d&#039;objets, que Wikipedia définit comme:   &lt;blockquote&gt; In computing, serialization (or serialisation) is the process of translating a data structure or object state into a format that can be stored (e.g. files in secondary storage devices, data buffers in primary storage devices) or transmitted (e.g. dat... »</title>
		<link rel="alternate" type="text/html" href="https://wiki.squi.fr/index.php?title=Rust_:_serde&amp;diff=2444&amp;oldid=prev"/>
		<updated>2023-02-28T11:24:08Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « = Serde (en vite fait) = [https://serde.rs/ Serde] est une librairie Rust que je vois absolument partout. Son objet est la sérialisation et la désérialisation d&amp;#039;objets, que Wikipedia définit comme:   &amp;lt;blockquote&amp;gt; In computing, serialization (or serialisation) is the process of translating a data structure or object state into a format that can be stored (e.g. files in secondary storage devices, data buffers in primary storage devices) or transmitted (e.g. dat... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Serde (en vite fait) =&lt;br /&gt;
[https://serde.rs/ Serde] est une librairie Rust que je vois absolument partout. Son objet est la sérialisation et la désérialisation d&amp;#039;objets, que Wikipedia définit comme: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
In computing, serialization (or serialisation) is the process of translating a data structure or object state into a format that can be stored (e.g. files in secondary storage devices, data buffers in primary storage devices) or transmitted (e.g. data streams over computer networks) and reconstructed later (possibly in a different computer environment).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En gros, cela nous permet de stocker nos structs dans un tas de formats (yaml, json, toml, et plein d&amp;#039;autre format à 4 lettres) et vice-versa. L&amp;#039;exemple donné sur la page d&amp;#039;accueil est assez parlant, et j&amp;#039;ai rapidement pu l&amp;#039;appliquer pour tester à mon propre code. Je commence par importer les dépendances, attention à activer les bonnes features:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
serde = { version = &amp;quot;1.0.152&amp;quot;, features = [&amp;quot;derive&amp;quot;] }&lt;br /&gt;
serde_json = &amp;quot;1.0.93&amp;quot;&lt;br /&gt;
serde_yaml = &amp;quot;0.9.17&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le code de mon shell Sqish, j&amp;#039;ai notamment le struct suivant qui sert à stocker la configuration du shell:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
use serde::{Serialize, Deserialize};&lt;br /&gt;
&lt;br /&gt;
#[derive(Debug, Serialize, Deserialize)]&lt;br /&gt;
pub struct SqishConf {&lt;br /&gt;
    pub promptline: String,&lt;br /&gt;
    pub promptline_base: String,&lt;br /&gt;
    pub aliases: HashMap&amp;lt;String, String&amp;gt;,&lt;br /&gt;
    pub hotkeys: HashMap&amp;lt;String, String&amp;gt;,&lt;br /&gt;
    pub init: String,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On peut voir que je lui ai rajouté les dérivations Serialize et Deserialize en plus de Debug : ces traits viennent de serde.&lt;br /&gt;
&lt;br /&gt;
Une fois que j&amp;#039;ai créé une instance de ce Struct, je peux le sérialiser en autre chose:&lt;br /&gt;
&amp;lt;src lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
//Créer une instance...&lt;br /&gt;
let mut out_conf = SqishConf {&lt;br /&gt;
    promptline: out_str.clone(),&lt;br /&gt;
    promptline_base: out_str,&lt;br /&gt;
    aliases: aliases,&lt;br /&gt;
    hotkeys: hotkeys,&lt;br /&gt;
    init: startup,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
//Sérialisation et affichage&lt;br /&gt;
let conf_json = serde_json::to_string(&amp;amp;out_conf).unwrap();&lt;br /&gt;
let conf_yaml = serde_yaml::to_string(&amp;amp;out_conf).unwrap();&lt;br /&gt;
dbg!(conf_json);&lt;br /&gt;
println!(&amp;quot;{:?}&amp;quot;, conf_yaml);&lt;br /&gt;
&amp;lt;/src&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et en principe, je pourrais stocker ces variables dans un fichier pour les récupérer par la suite dans un struct SqishConf.&lt;/div&gt;</summary>
		<author><name>Justine</name></author>
	</entry>
</feed>