Direct Array/Slice Indexing Patterns in rust-etchdns
====================================================

File: /Users/j/src/rust-etchdns/src/dns_parser.rs
---------------------------------------------------
Line 355: packet[3] & 0x0F
Line 373: (packet[2] >> 3) & 0x0F
Line 621: match packet[offset] as usize {
Line 698: match packet[current_offset] as usize {
Line 1198: truncated_address[last_byte_index] &= mask;
Line 1337: edns_version = Some(ttl_bytes[1]); // Byte 1 is the EDNS version
Line 1375: packet[0] = (tid >> 8) as u8;
Line 1376: packet[1] = tid as u8;
Line 1394: packet[2] = (flags >> 8) as u8;
Line 1395: packet[3] = flags as u8;
Line 1499: packet[3] = (packet[3] & 0xF0) | (rcode & 0x0F);
Line 1504: packet[3] = packet[3] & 0xF0;
Line 1845: packet[2] = (packet[2] & 0x87) | ((opcode & 0x0F) << 3);
Line 1856: packet[11] = 0x01;
Line 2343: packet[4] = 0;
Line 2344: packet[5] = 1;
Line 2347: packet[DNS_HEADER_SIZE] = 64;
Line 2361: packet[4] = 0;
Line 2362: packet[5] = 1;
Line 2365: packet[12] = 63; // Max valid label length
Line 2382: packet[4] = 0;
Line 2383: packet[5] = 1;
Line 2385: packet[DNS_HEADER_SIZE] = 0; // Root label (1 byte)

File: /Users/j/src/rust-etchdns/src/ip_validator.rs
----------------------------------------------------
Line 239: let first_octet = ip.octets()[0];
Line 240: let second_octet = ip.octets()[1];
Line 241: let third_octet = ip.octets()[2];
Line 292: if segments[0] == 0x2001 && segments[1] == 0xdb8 {
Line 301: let is_ula = (ip.segments()[0] & 0xfe00) == 0xfc00;
Line 309: let is_link_local = (ip.segments()[0] & 0xffc0) == 0xfe80;
Line 404: cleaned_segments[i] = 0;
Line 407: cleaned_segments[i] = segments[i];
Line 416: cleaned_segments[i] = segments[i] & mask;
Line 436: let ip_str = parts[0];
Line 437: let prefix_len = parts[1]
Line 513: if ip_segments[i] != base_segments[i] {
Line 523: if (ip_segments[i] & mask) != (base_segments[i] & mask) {
Line 580: if segments[0] == 0
Line 581: && segments[1] == 0
Line 582: && segments[2] == 0
Line 583: && segments[3] == 0
Line 584: && segments[4] == 0
Line 585: && segments[5] == 0xffff
Line 588: let a = (segments[6] >> 8) as u8;
Line 589: let b = (segments[6] & 0xff) as u8;
Line 590: let c = (segments[7] >> 8) as u8;
Line 591: let d = (segments[7] & 0xff) as u8;

File: /Users/j/src/rust-etchdns/src/load_balancer.rs
----------------------------------------------------
Line 57: return Some(&upstream_servers[0]);
Line 64: Some(&upstream_servers[index])
Line 71: return Some(&upstream_servers[index]);
Line 81: return Some(&upstream_servers[index]);
Line 96: Some(&upstream_servers[index])
Line 105: return Some(&upstream_servers[index]);
Line 117: return Some(&upstream_servers[index]);
Line 121: let fastest_time = resolvers_by_speed[0].1;
Line 168: return Some(&upstream_servers[index]);
Line 173: debug!("Only one eligible server found: {}", eligible_servers[0]);
Line 195: let server1 = eligible_servers[index1];
Line 196: let server2 = eligible_servers[index2];

File: /Users/j/src/rust-etchdns/src/main.rs
--------------------------------------------
Line 1174: let response_len = ((length_buf[0] as usize) << 8) | (length_buf[1] as usize);
Line 1445: let len = ((len_buf[0] as u16) << 8) | (len_buf[1] as u16);
Line 2385: let socket_addr = (*all_socket_addrs)[i];
Line 2564: let socket_addr = (*all_socket_addrs)[i];

File: /Users/j/src/rust-etchdns/src/dns_processor.rs
----------------------------------------------------
Line 380: assert_eq!(response[opt_start], 0); // Root domain

Summary
-------
Total occurrences of direct indexing found: 62

Categories:
1. Fixed index access (e.g., packet[0], packet[1], segments[0]): 46 occurrences
2. Variable index access (e.g., packet[offset], segments[i]): 16 occurrences

Most common patterns:
- DNS packet byte access (packet[0-11])
- IPv6 segment access (segments[0-7])
- Upstream server selection (upstream_servers[index])
- Array element access with loop variable (segments[i], cleaned_segments[i])