Back to Bazel

Provider

docs/versions/6.4.0/rules/lib/Provider.mdx

9.1.0981 B
Original Source
<html devsite> <head> <meta name="project_path" value="/_project.yaml"> <meta name="book_path" value="/versions/6.4.0/_book.yaml"> </head> <body> <h1 class="page-title" id="modules.Provider">Provider</h1> <!-- {% raw %} -->

A constructor for simple value objects, known as provider instances. 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() d = DataInfo(x = 2, y = 3) 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() def _rule_impl(ctx) ... ctx.attr.dep[DataInfo]</pre> </li> </ul>Create a new <code>Provider</code> using the <a href="globals.html#provider">provider</a> function.

</body> </html> <!-- {% endraw %} -->