| 9 | using NOpenSSL::TAbstractIO; |
| 10 | |
| 11 | TAbstractIO* IO(BIO* bio) noexcept { |
| 12 | void* ptr = BIO_get_data(bio); |
| 13 | Y_ABORT_UNLESS(ptr); |
| 14 | return static_cast<TAbstractIO*>(ptr); |
| 15 | } |
| 16 | |
| 17 | template<class T, class Callable, class... Args> |
| 18 | T ExceptionBoundary(BIO* bio, Callable&& f, T err, Args&&... args) noexcept { |