Page 1 of 1

Rost -Hashmaps, bei denen die Schlüssel Referenzen sind, die Werte enthalten, die Werte enthalten

Posted: 22 May 2025, 12:48
by Anonymous
Ich porte einige meiner komplexeren C ++ - Code auf Rost, um die Sprache zu lernen. Eine Sache, die ich habe, ist eine Karte von Werten, die von einem STD :: String im Wertschöpfungstyp gespeichert sind, um zu vermeiden, dass die Zeichenfolge in die Kartenschlüssel kopiert. Ich verwende eine string_view . Aufgrund der Verwendung der Verwendung wird der Schlüssel immer auf die gültige Zeichenfolge hinweisen, die in seinem Wert gehalten wird. Der Rost unten repräsentiert die Strukturen, die ich porte. Jede Hilfe geschätzt! < /P>

Code: Select all

use std::collections::HashMap;
use std::sync::Arc;

// A thing with a name and other guff
struct BaseThing {
name : String,
data1 : String,
data2 : f32
// and many more bits of data
}

// a thing raised to a power is a component of our value
struct Component {
pub base_thing: Arc,
pub power: i32,
}

type ComponentsMap = HashMap;

// Ideally want this....
// type ComponentsMap = HashMap;

// A value is a collection of BaseThings raised to a power
// indexed by the name of the thing.
struct Value {
pub components: ComponentsMap
// and some other bits as well
}

fn addComponent(value : &mut Value,
base_thing : Arc,
power : i32)
{
// The map is indexed by the name of the baseThing being inserted.
value.components.insert(base_thing.name.clone(),
Component {
base_thing: base_thing,
power : power });
}
Bearbeiten
Danke für alle Antworten, ich verwende idordmap von https://github.com/oxidecomputer/iddqd.