alias Towerops.Agent.SnmpResult result = %SnmpResult{ device_id: "550e8400-e29b-41d4-a716-446655440000", job_type: :POLL, job_id: "test", timestamp: 1_234_567_890, oid_values: %{"1.2.3" => "test"} } IO.puts("Original: #{inspect(result)}") binary = SnmpResult.encode(result) IO.puts("Encoded to #{byte_size(binary)} bytes") case SnmpResult.decode(binary) do {:ok, decoded} -> IO.puts("Decoded successfully!") IO.puts(" device_id: #{decoded.device_id}") IO.puts(" job_type: #{inspect(decoded.job_type)}") IO.puts(" job_id: #{decoded.job_id}") IO.puts(" timestamp: #{decoded.timestamp}") IO.puts(" oid_values: #{inspect(decoded.oid_values)}") {:error, reason} -> IO.puts("Decode failed: #{inspect(reason)}") end