refactor(tvix/value): replace static representation with SmolStr

The only uses of the static variant were for `"name"` and `"value"`,
which are both small enough to fit into a SmolStr. The size of
NixString accomodates `String` anyways, so we may as well inline them.

Additionally smol_str is already in the dependency graph because rnix
uses it, and using it for representations of identifiers is sensible.

Change-Id: I9969312256d1657d69128e54c47dc7294a18ce58
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6165
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
Vincent Ambo 2022-08-11 19:02:19 +03:00 committed by tazjin
parent f331874aeb
commit 999b9c7a13
5 changed files with 15 additions and 12 deletions

View file

@ -38,8 +38,8 @@ impl AttrsRep {
AttrsRep::KV { name, value } => {
*self = AttrsRep::Map(BTreeMap::from([
("name".into(), std::mem::replace(name, Value::Blackhole)),
("value".into(), std::mem::replace(value, Value::Blackhole)),
(NixString::NAME, std::mem::replace(name, Value::Blackhole)),
(NixString::VALUE, std::mem::replace(value, Value::Blackhole)),
]));
self.map_mut()
}
@ -62,7 +62,7 @@ impl AttrsRep {
None
}
AttrsRep::Map(map) => map.get(&key.to_string().into()),
AttrsRep::Map(map) => map.get(&key.into()),
}
}
}