Sha256: 0bef69f7146d16189922ea93c4c325738714a2e2861843f033b6560ccc4f1411

Contents?: true

Size: 653 Bytes

Versions: 2

Compression:

Stored size: 653 Bytes

Contents

# rbs_inline: enabled
# frozen_string_literal: true

module Redhound
  class L4
    class Resolver
      # @rbs (bytes: Array[Integer], l3: Redhound::L3::Base) -> Redhound::L4::Base?
      def self.resolve(bytes:, l3:)
        new(bytes:, l3:).resolve
      end

      # @rbs (bytes: Array[Integer], l3: Redhound::L3::Base) -> void
      def initialize(bytes:, l3:)
        @bytes = bytes
        @l3 = l3
      end

      # @rbs () -> Redhound::L4::Base?
      def resolve
        if @l3.protocol.udp?
          Udp.generate(bytes: @bytes)
        elsif @l3.protocol.icmp?
          Icmp.generate(bytes: @bytes)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
redhound-1.0.1 lib/redhound/l4/resolver.rb
redhound-1.0.0 lib/redhound/l4/resolver.rb