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