diff --git a/src/gn/starlark/crates/attr/src/ctx.rs b/src/gn/starlark/crates/attr/src/ctx.rs
index afca193..dff6652 100644
--- a/src/gn/starlark/crates/attr/src/ctx.rs
+++ b/src/gn/starlark/crates/attr/src/ctx.rs
@@ -50,11 +50,9 @@
         builtin: Option<OutputType>,
         heap: &FrozenHeap,
     ) -> Self {
-        let (builtin_files, builtin_attrs) =
-            builtin.map(|b| b.attrs()).unwrap_or_default();
-        let mut attrs_fields = SmallMap::with_capacity(
-            attrs.len() + builtin_files.len() + builtin_attrs.len(),
-        );
+        let (builtin_files, builtin_attrs) = builtin.map(|b| b.attrs()).unwrap_or_default();
+        let mut attrs_fields =
+            SmallMap::with_capacity(attrs.len() + builtin_files.len() + builtin_attrs.len());
         let mut file_fields = SmallMap::new();
         let mut files_fields = SmallMap::new();
 
@@ -115,8 +113,7 @@
         mut ctx_attr: Vec<Value<'v>>,
         heap: &Heap<'v>,
     ) -> starlark::Result<CtxAttr<'v>> {
-        let (builtin_files, builtin_attrs) =
-            builtin.map(|b| b.attrs()).unwrap_or_default();
+        let (builtin_files, builtin_attrs) = builtin.map(|b| b.attrs()).unwrap_or_default();
         debug_assert!(builtin_files.len() + builtin_attrs.len() == ctx_attr.len());
         ctx_attr.reserve_exact(self.attr.len() - ctx_attr.len());
         let mut ctx_files = Vec::with_capacity(self.files.len());
diff --git a/src/gn/starlark/crates/providers/src/provider_instance.rs b/src/gn/starlark/crates/providers/src/provider_instance.rs
index 6ca3192..c457a98 100644
--- a/src/gn/starlark/crates/providers/src/provider_instance.rs
+++ b/src/gn/starlark/crates/providers/src/provider_instance.rs
@@ -53,7 +53,6 @@
 where
     Self: ProvidesStaticType<'v>,
 {
-
     pub(crate) fn ty_name(&self) -> &'static str {
         self.get_type_value_dyn().as_str()
     }
diff --git a/src/gn/starlark/crates/providers/src/provider_type.rs b/src/gn/starlark/crates/providers/src/provider_type.rs
index 499afa5..943fc00 100644
--- a/src/gn/starlark/crates/providers/src/provider_type.rs
+++ b/src/gn/starlark/crates/providers/src/provider_type.rs
@@ -161,10 +161,7 @@
     type Frozen = FrozenProviderType;
 
     fn freeze(self, _freezer: &Freezer) -> FreezeResult<Self::Frozen> {
-        let data = self
-            .data
-            .into_inner()
-            .ok_or(Error::ProviderNotExported)?;
+        let data = self.data.into_inner().ok_or(Error::ProviderNotExported)?;
         Ok(FrozenProviderType {
             id: self.id,
             data,
diff --git a/src/gn/starlark/crates/rule/src/frozen_rule.rs b/src/gn/starlark/crates/rule/src/frozen_rule.rs
index b69b980..91648df 100644
--- a/src/gn/starlark/crates/rule/src/frozen_rule.rs
+++ b/src/gn/starlark/crates/rule/src/frozen_rule.rs
@@ -17,7 +17,6 @@
 
 use crate::rule::{build_signature, OutputType};
 
-
 /// A frozen representation of a Starlark rule object.
 ///
 /// Once a rule has been exported from a loaded Starlark module (e.g., from
@@ -35,7 +34,8 @@
 }
 
 // Safety: FrozenRule does not automatically derive Send and Sync because of C.
-// But it only contains C inside PhantomData, so Send and Sync are actually safe.
+// But it only contains C inside PhantomData, so Send and Sync are actually
+// safe.
 unsafe impl<C: EvalContextAttrExt> Send for FrozenRule<C> {}
 unsafe impl<C: EvalContextAttrExt> Sync for FrozenRule<C> {}
 
diff --git a/src/gn/starlark/crates/rule/src/rule.rs b/src/gn/starlark/crates/rule/src/rule.rs
index 4fba527..74a8fac 100644
--- a/src/gn/starlark/crates/rule/src/rule.rs
+++ b/src/gn/starlark/crates/rule/src/rule.rs
@@ -16,8 +16,8 @@
     },
 };
 use starlark_derive::{starlark_value, NoSerialize};
-pub use types::OutputType;
 use types::EvaluatorContextExt;
+pub use types::OutputType;
 
 use crate::frozen_rule::FrozenRule;
 
@@ -44,7 +44,8 @@
 }
 
 // Safety: Rule does not automatically derive Send and Sync because of C.
-// But it only contains C inside PhantomData, so Send and Sync are actually safe.
+// But it only contains C inside PhantomData, so Send and Sync are actually
+// safe.
 unsafe impl<'v, C: EvalContextAttrExt> Send for Rule<'v, C> {}
 unsafe impl<'v, C: EvalContextAttrExt> Sync for Rule<'v, C> {}
 
diff --git a/src/gn/starlark/crates/testutils/src/assert.rs b/src/gn/starlark/crates/testutils/src/assert.rs
index 3239ade..3be4a8e 100644
--- a/src/gn/starlark/crates/testutils/src/assert.rs
+++ b/src/gn/starlark/crates/testutils/src/assert.rs
@@ -130,7 +130,8 @@
         self.assert.pass(code)
     }
 
-    /// Asserts that freezing the evaluated module fails with the expected error.
+    /// Asserts that freezing the evaluated module fails with the expected
+    /// error.
     #[track_caller]
     pub fn fail_to_freeze(&mut self, code: &str, expected_error: &str) -> starlark::Error {
         self.assert.fail_to_freeze(code, expected_error)
diff --git a/src/gn/starlark/crates/testutils/src/target.rs b/src/gn/starlark/crates/testutils/src/target.rs
index 544231f..dfdb571 100644
--- a/src/gn/starlark/crates/testutils/src/target.rs
+++ b/src/gn/starlark/crates/testutils/src/target.rs
@@ -15,7 +15,9 @@
     values::{FrozenValue, ProvidesStaticType, StarlarkValue, Value, ValueLike},
 };
 use starlark_derive::{starlark_value, NoSerialize};
-use types::{File, IPromiseToImplementStarlarkEqAndHash, Label, LabelRef, OutputType, Session, TargetRef};
+use types::{
+    File, IPromiseToImplementStarlarkEqAndHash, Label, LabelRef, OutputType, Session, TargetRef,
+};
 
 /// A fake target struct for testing.
 #[derive(Debug, Allocative, Default)]
diff --git a/src/gn/starlark/crates/types/src/lib.rs b/src/gn/starlark/crates/types/src/lib.rs
index 33c7fd3..44613d7 100644
--- a/src/gn/starlark/crates/types/src/lib.rs
+++ b/src/gn/starlark/crates/types/src/lib.rs
@@ -8,10 +8,10 @@
 pub mod file;
 pub mod label;
 pub mod label_ref;
+pub mod output_type;
 pub mod package;
 pub mod package_ref;
 pub mod path_resolver;
-pub mod output_type;
 pub mod scope;
 pub mod session;
 pub mod target_ref;
