| 113 | |
| 114 | private: |
| 115 | struct StaticFunctionEntry { |
| 116 | StaticFunctionEntry(const cel::FunctionDescriptor& descriptor, |
| 117 | std::unique_ptr<cel::Function> impl) |
| 118 | : descriptor(std::make_unique<cel::FunctionDescriptor>(descriptor)), |
| 119 | implementation(std::move(impl)) {} |
| 120 | |
| 121 | // Extra indirection needed to preserve pointer stability for the |
| 122 | // descriptors. |
| 123 | std::unique_ptr<cel::FunctionDescriptor> descriptor; |
| 124 | std::unique_ptr<cel::Function> implementation; |
| 125 | }; |
| 126 | |
| 127 | struct LazyFunctionEntry { |
| 128 | LazyFunctionEntry( |