module Net::IMAP::Config::AttrTypeCoercion
def self.attr_accessor(attr, type: nil)
def self.attr_accessor(attr, type: nil) type = Types[type] or return define_method :"#{attr}=" do |val| super type[val] end define_method :"#{attr}?" do send attr end if type == Boolean end
def self.included(mod)
def self.included(mod) mod.extend Macros end
def self.safe(&b)
def self.safe(&b) case obj = b.call when Proc Ractor.shareable_proc(&obj) else Ractor.make_shareable obj end end
def self.safe(&b)
def self.safe(&b) obj = nil.instance_eval(&b).freeze Ractor.make_shareable obj end
def self.safe(&b) nil.instance_eval(&b).freeze end
def self.safe(&b) nil.instance_eval(&b).freeze end