Export RustDefaultVersion to Bazel

The config constant is consumed by rust toolchain implemented in aosp/2709668.

Bug: 295918553
Test: go test
Change-Id: I0a28a802ad28f6ee24dfb1b5bdab72094534ae04
diff --git a/bp2build/conversion.go b/bp2build/conversion.go
index f280924..7791419 100644
--- a/bp2build/conversion.go
+++ b/bp2build/conversion.go
@@ -12,6 +12,7 @@
 	"android/soong/cc"
 	cc_config "android/soong/cc/config"
 	java_config "android/soong/java/config"
+	rust_config "android/soong/rust/config"
 	"android/soong/starlark_fmt"
 
 	"github.com/google/blueprint/proptools"
@@ -37,6 +38,9 @@
 	files = append(files, newFile("java_toolchain", GeneratedBuildFileName, "")) // Creates a //java_toolchain package.
 	files = append(files, newFile("java_toolchain", "constants.bzl", java_config.BazelJavaToolchainVars(cfg)))
 
+	files = append(files, newFile("rust_toolchain", GeneratedBuildFileName, "")) // Creates a //rust_toolchain package.
+	files = append(files, newFile("rust_toolchain", "constants.bzl", rust_config.BazelRustToolchainVars(cfg)))
+
 	files = append(files, newFile("apex_toolchain", GeneratedBuildFileName, "")) // Creates a //apex_toolchain package.
 	apexToolchainVars, err := apex.BazelApexToolchainVars()
 	if err != nil {
diff --git a/bp2build/conversion_test.go b/bp2build/conversion_test.go
index 15284ce..cbffaa0 100644
--- a/bp2build/conversion_test.go
+++ b/bp2build/conversion_test.go
@@ -117,6 +117,14 @@
 			basename: "constants.bzl",
 		},
 		{
+			dir:      "rust_toolchain",
+			basename: GeneratedBuildFileName,
+		},
+		{
+			dir:      "rust_toolchain",
+			basename: "constants.bzl",
+		},
+		{
 			dir:      "apex_toolchain",
 			basename: GeneratedBuildFileName,
 		},
diff --git a/rust/config/global.go b/rust/config/global.go
index 86eb2d1..ca2c9af 100644
--- a/rust/config/global.go
+++ b/rust/config/global.go
@@ -21,9 +21,10 @@
 	_ "android/soong/cc/config"
 )
 
-var pctx = android.NewPackageContext("android/soong/rust/config")
-
 var (
+	pctx         = android.NewPackageContext("android/soong/rust/config")
+	exportedVars = android.NewExportedVariables(pctx)
+
 	RustDefaultVersion = "1.71.0"
 	RustDefaultBase    = "prebuilts/rust/"
 	DefaultEdition     = "2021"
@@ -105,6 +106,7 @@
 
 	pctx.StaticVariable("DeviceGlobalLinkFlags", strings.Join(deviceGlobalLinkFlags, " "))
 
+	exportedVars.ExportStringStaticVariable("RUST_DEFAULT_VERSION", RustDefaultVersion)
 }
 
 func getRustVersionPctx(ctx android.PackageVarContext) string {
@@ -117,3 +119,8 @@
 	}
 	return RustDefaultVersion
 }
+
+// BazelRustToolchainVars returns a string with
+func BazelRustToolchainVars(config android.Config) string {
+	return android.BazelToolchainVars(config, exportedVars)
+}