diff options
author | Samuel Williams <samuel.williams@oriontransfer.co.nz> | 2024-03-06 19:47:38 +1300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-06 19:47:38 +1300 |
commit | 9ab1fa3bf570bf19b0d6808adf12e965aacc6d83 (patch) | |
tree | 937bb80d85725891c481478212a2fa03c921590f | |
parent | 97d32bb2fcc6d53ec17c96ea6d826f1f7698aa29 (diff) |
Hide public implementation of `rb_io`. (#9568)
Remove `struct rb_io {...}`.
-rw-r--r-- | include/ruby/io.h | 119 |
1 files changed, 1 insertions, 118 deletions
diff --git a/include/ruby/io.h b/include/ruby/io.h index e9dfeda5b1..be5681df3b 100644 --- a/include/ruby/io.h +++ b/include/ruby/io.h @@ -137,124 +137,7 @@ struct rb_io_encoding { VALUE ecopts; }; -#ifndef HAVE_RB_IO_T -#define HAVE_RB_IO_T 1 -/** Ruby's IO, metadata and buffers. */ -struct rb_io { - /** The IO's Ruby level counterpart. */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - VALUE self; - - /** stdio ptr for read/write, if available. */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - FILE *stdio_file; - - /** file descriptor. */ - RBIMPL_ATTR_DEPRECATED(("rb_io_descriptor")) - int fd; - - /** mode flags: FMODE_XXXs */ - RBIMPL_ATTR_DEPRECATED(("rb_io_mode")) - int mode; - - /** child's pid (for pipes) */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - rb_pid_t pid; - - /** number of lines read */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - int lineno; - - /** pathname for file */ - RBIMPL_ATTR_DEPRECATED(("rb_io_path")) - VALUE pathv; - - /** finalize proc */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - void (*finalize)(struct rb_io*,int); - - /** Write buffer. */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - rb_io_buffer_t wbuf; - - /** - * (Byte) read buffer. Note also that there is a field called - * ::rb_io_t::cbuf, which also concerns read IO. - */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - rb_io_buffer_t rbuf; - - /** - * Duplex IO object, if set. - * - * @see rb_io_set_write_io() - */ - RBIMPL_ATTR_DEPRECATED(("rb_io_get_write_io")) - VALUE tied_io_for_writing; - - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - struct rb_io_encoding encs; /**< Decomposed encoding flags. */ - - /** Encoding converter used when reading from this IO. */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - rb_econv_t *readconv; - - /** - * rb_io_ungetc() destination. This buffer is read before checking - * ::rb_io_t::rbuf - */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - rb_io_buffer_t cbuf; - - /** Encoding converter used when writing to this IO. */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - rb_econv_t *writeconv; - - /** - * This is, when set, an instance of ::rb_cString which holds the "common" - * encoding. Write conversion can convert strings twice... In case - * conversion from encoding X to encoding Y does not exist, Ruby finds an - * encoding Z that bridges the two, so that X to Z to Y conversion happens. - */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - VALUE writeconv_asciicompat; - - /** Whether ::rb_io_t::writeconv is already set up. */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - int writeconv_initialized; - - /** - * Value of ::rb_io_t::rb_io_enc_t::ecflags stored right before - * initialising ::rb_io_t::writeconv. - */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - int writeconv_pre_ecflags; - - /** - * Value of ::rb_io_t::rb_io_enc_t::ecopts stored right before initialising - * ::rb_io_t::writeconv. - */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - VALUE writeconv_pre_ecopts; - - /** - * This is a Ruby level mutex. It avoids multiple threads to write to an - * IO at once; helps for instance rb_io_puts() to ensure newlines right - * next to its arguments. - * - * This of course doesn't help inter-process IO interleaves, though. - */ - RBIMPL_ATTR_DEPRECATED(("with no replacement")) - VALUE write_lock; - - /** - * The timeout associated with this IO when performing blocking operations. - */ - RBIMPL_ATTR_DEPRECATED(("rb_io_timeout/rb_io_set_timeout")) - VALUE timeout; -}; -#endif - +struct rb_io; typedef struct rb_io rb_io_t; /** @alias{rb_io_enc_t} */ |