blob: 54b9cf36d56967849614d030ccaf96db1375dc0b [file] [log] [blame]
---
title: 'Provider'
---
A constructor for simple value objects, known as provider instances.
This value has a dual purpose:
* It is a function that can be called to construct 'struct'-like values:
```
DataInfo = provider()
d = DataInfo(x = 2, y = 3)
print(d.x + d.y) # prints 5
```
Note: Some providers, defined internally, do not allow instance creation
* It is a *key* to access a provider instance on a [Target](../builtins/Target)
```
DataInfo = provider()
def _rule_impl(ctx)
... ctx.attr.dep[DataInfo]
```
Create a new `Provider` using the [provider](../globals/bzl#provider) function.