diff --git a/rust/afdo.go b/rust/afdo.go
index 6bd4bae..6116c5e 100644
--- a/rust/afdo.go
+++ b/rust/afdo.go
@@ -39,7 +39,7 @@
 		return
 	}
 
-	if mod, ok := ctx.Module().(*Module); ok && mod.Enabled(ctx) {
+	if mod, ok := ctx.Module().(*Module); ok && mod.Enabled() {
 		fdoProfileName, err := actx.DeviceConfig().AfdoProfile(actx.ModuleName())
 		if err != nil {
 			ctx.ModuleErrorf("%s", err.Error())
diff --git a/rust/doc.go b/rust/doc.go
index fe20523..6970d79 100644
--- a/rust/doc.go
+++ b/rust/doc.go
@@ -38,7 +38,7 @@
 		FlagWithArg("-D ", docDir.String())
 
 	ctx.VisitAllModules(func(module android.Module) {
-		if !module.Enabled(ctx) {
+		if !module.Enabled() {
 			return
 		}
 
diff --git a/rust/fuzz.go b/rust/fuzz.go
index da111b5..1770d2e 100644
--- a/rust/fuzz.go
+++ b/rust/fuzz.go
@@ -20,8 +20,6 @@
 	"android/soong/fuzz"
 	"android/soong/rust/config"
 	"path/filepath"
-
-	"github.com/google/blueprint/proptools"
 )
 
 func init() {
@@ -66,14 +64,17 @@
 	android.AddLoadHook(module, func(ctx android.LoadHookContext) {
 
 		extraProps := struct {
-			Enabled proptools.Configurable[bool]
-		}{
-			Enabled: android.CreateSelectOsToBool(map[string]*bool{
-				"":             nil,
-				"darwin":       proptools.BoolPtr(false),
-				"linux_bionic": proptools.BoolPtr(false),
-			}),
-		}
+			Target struct {
+				Darwin struct {
+					Enabled *bool
+				}
+				Linux_bionic struct {
+					Enabled *bool
+				}
+			}
+		}{}
+		extraProps.Target.Darwin.Enabled = cc.BoolPtr(false)
+		extraProps.Target.Linux_bionic.Enabled = cc.BoolPtr(false)
 		ctx.AppendProperties(&extraProps)
 	})
 
diff --git a/rust/library.go b/rust/library.go
index f58a54f..6be4917 100644
--- a/rust/library.go
+++ b/rust/library.go
@@ -713,7 +713,7 @@
 	if sourceVariant {
 		sv := modules[0]
 		for _, v := range modules[1:] {
-			if !v.Enabled(mctx) {
+			if !v.Enabled() {
 				continue
 			}
 			mctx.AddInterVariantDependency(sourceDepTag, v, sv)
diff --git a/rust/project_json.go b/rust/project_json.go
index 925dd80..ad9b690 100644
--- a/rust/project_json.go
+++ b/rust/project_json.go
@@ -119,7 +119,7 @@
 	if !ok {
 		return nil, false
 	}
-	if !rModule.Enabled(ctx) {
+	if !rModule.Enabled() {
 		return nil, false
 	}
 	return rModule, true
diff --git a/rust/rust.go b/rust/rust.go
index de049f7..c2b6151 100644
--- a/rust/rust.go
+++ b/rust/rust.go
@@ -1697,7 +1697,7 @@
 }
 
 func BeginMutator(ctx android.BottomUpMutatorContext) {
-	if mod, ok := ctx.Module().(*Module); ok && mod.Enabled(ctx) {
+	if mod, ok := ctx.Module().(*Module); ok && mod.Enabled() {
 		mod.beginMutator(ctx)
 	}
 }
diff --git a/rust/sanitize.go b/rust/sanitize.go
index c086880..bfd3971 100644
--- a/rust/sanitize.go
+++ b/rust/sanitize.go
@@ -258,7 +258,7 @@
 
 func rustSanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) {
 	if mod, ok := mctx.Module().(*Module); ok && mod.sanitize != nil {
-		if !mod.Enabled(mctx) {
+		if !mod.Enabled() {
 			return
 		}
 
