| 747 | } |
| 748 | |
| 749 | void TF_FunctionGetAttrValueProto(TF_Function* func, const char* attr_name, |
| 750 | TF_Buffer* output_attr_value, |
| 751 | TF_Status* status) { |
| 752 | const auto& it = func->fdef.attr().find(attr_name); |
| 753 | if (it == func->fdef.attr().end()) { |
| 754 | status->status = |
| 755 | InvalidArgument("Function '", func->fdef.signature().name(), |
| 756 | "' has no attr named '", attr_name, "'."); |
| 757 | return; |
| 758 | } |
| 759 | status->status = MessageToBuffer(it->second, output_attr_value); |
| 760 | } |
| 761 | |
| 762 | void TF_DeleteFunction(TF_Function* func) { delete func; } |