diff options
| author | nick evans <nick@rubinick.dev> | 2024-10-28 15:41:26 -0400 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2025-05-01 17:52:14 +0000 |
| commit | 136dc52663b3e3a1a6c4efd3c4621ea2a7aacd17 (patch) | |
| tree | 07c2982b32ffb0ebd1aacb76c392c2e7e1cef7ae /include/ruby/internal/encoding/transcode.h | |
| parent | a397e4d4b0a0e7e8499a33ec760dba97ce494c63 (diff) | |
Add support for Data objects with ivars
This sets the ivars _before_ calling initialize, which feels wrong. But
Data doesn't give us any mechanism for setting the members other than 1)
initialize, or 2) drop down into the C API. Since initialize freezes
the object, we need to set the ivars before that. I think this is a
reasonable compromise—if users need better handling, they can implement
their own `encode_with` and `init_with`. But it will lead to unhappy
surprises for some users.
Alternatively, we could use the C API, similarly to Marshal. Psych _is_
already using the C API for path2class and build_exception. This would
be the least surprising behavior for users, I think.
Diffstat (limited to 'include/ruby/internal/encoding/transcode.h')
0 files changed, 0 insertions, 0 deletions
