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
    DataInfo = provider()
    def _rule_impl(ctx)
      ... ctx.attr.dep[DataInfo]
Create a new Provider using the provider function.