module Turbo

def signed_stream_verifier

def signed_stream_verifier
  @signed_stream_verifier ||= ActiveSupport::MessageVerifier.new(signed_stream_verifier_key, digest: "SHA256", serializer: JSON)
end

def signed_stream_verifier_key

def signed_stream_verifier_key
  @signed_stream_verifier_key or raise ArgumentError, "Turbo requires a signed_stream_verifier_key"
end

def with_request_id(request_id)

def with_request_id(request_id)
  old_request_id, self.current_request_id = self.current_request_id, request_id
  yield
ensure
  self.current_request_id = old_request_id
end