class Kredis::Types::CallbacksProxy

def initialize(type, callback)

def initialize(type, callback)
  @type, @callback = type, callback
end

def invoke_suitable_after_change_callback_for(method)

def invoke_suitable_after_change_callback_for(method)
  @callback.call(type) if AFTER_CHANGE_OPERATIONS[type.class]&.include? method
end

def method_missing(method, *args, **kwargs, &block)

def method_missing(method, *args, **kwargs, &block)
  result = type.send(method, *args, **kwargs, &block)
  invoke_suitable_after_change_callback_for method
  result
end