Migrate struct and Provider to the skylark build api
RELNOTES: None.
PiperOrigin-RevId: 195013604
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Provider.java b/src/main/java/com/google/devtools/build/lib/packages/Provider.java
index 5afb0fb..895240a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Provider.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Provider.java
@@ -15,8 +15,7 @@
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Location;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
-import com.google.devtools.build.lib.skylarkinterface.SkylarkValue;
+import com.google.devtools.build.lib.skylarkbuildapi.ProviderApi;
import com.google.devtools.build.lib.syntax.ClassObject;
/**
@@ -33,31 +32,8 @@
* <p>Prefer to use {@link Key} as a serializable identifier of {@link Provider}. In particular,
* {@link Key} should be used in all data structures exposed to Skyframe.
*/
-@SkylarkModule(
- name = "Provider",
- doc =
- "A constructor for simple value objects, known as provider instances."
- + "<br>"
- + "This value has a dual purpose:"
- + " <ul>"
- + " <li>It is a function that can be called to construct 'struct'-like values:"
- + "<pre class=\"language-python\">DataInfo = provider()\n"
- + "d = DataInfo(x = 2, y = 3)\n"
- + "print(d.x + d.y) # prints 5</pre>"
- + " Note: Some providers, defined internally, do not allow instance creation"
- + " </li>"
- + " <li>It is a <i>key</i> to access a provider instance on a"
- + " <a href=\"Target.html\">Target</a>"
- + "<pre class=\"language-python\">DataInfo = provider()\n"
- + "def _rule_impl(ctx)\n"
- + " ... ctx.attr.dep[DataInfo]</pre>"
- + " </li>"
- + " </ul>"
- + "Create a new <code>Provider</code> using the "
- + "<a href=\"globals.html#provider\">provider</a> function."
-)
@Immutable
-public interface Provider extends SkylarkValue {
+public interface Provider extends ProviderApi {
/**
* Has this {@link Provider} been exported? All native providers are always exported. Skylark