git.delta.rocks / jrsonnet / refs/commits / e2e1f7b086aa

difftreelog

feat(jrsonnet-interner) implement gc

Yaroslav Bolyukin2021-06-05parent: #6766bfc.patch.diff
in: master
Interned string is backed by Rc<str>, there is nothing to trace here

2 files changed

modifiedcrates/jrsonnet-interner/Cargo.tomldiffbeforeafterboth
9[dependencies]9[dependencies]
10serde = { version = "1.0" }10serde = { version = "1.0" }
11rustc-hash = "1.1.0"11rustc-hash = "1.1.0"
1212gc = { version = "0.4.1", features = ["derive"] }
modifiedcrates/jrsonnet-interner/src/lib.rsdiffbeforeafterboth
--- a/crates/jrsonnet-interner/src/lib.rs
+++ b/crates/jrsonnet-interner/src/lib.rs
@@ -1,3 +1,4 @@
+use gc::{unsafe_empty_trace, Finalize, Trace};
 use rustc_hash::FxHashMap;
 use serde::{Deserialize, Serialize};
 use std::{
@@ -10,6 +11,10 @@
 
 #[derive(Clone, PartialOrd, Ord, Eq)]
 pub struct IStr(Rc<str>);
+impl Finalize for IStr {}
+unsafe impl Trace for IStr {
+	unsafe_empty_trace!();
+}
 
 impl Deref for IStr {
 	type Target = str;