SOURCE_FILE@0..1598 EXTERN_BLOCK@0..1597 ABI@0..6 EXTERN_KW@0..6 "extern" WHITESPACE@6..7 " " EXTERN_ITEM_LIST@7..1597 L_CURLY@7..8 "{" WHITESPACE@8..13 "\n " FN@13..87 VISIBILITY@13..16 PUB_KW@13..16 "pub" WHITESPACE@16..17 " " FN_KW@17..19 "fn" WHITESPACE@19..20 " " NAME@20..26 IDENT@20..26 "socket" PARAM_LIST@26..75 L_PAREN@26..27 "(" PARAM@27..42 IDENT_PAT@27..33 NAME@27..33 IDENT@27..33 "domain" COLON@33..34 ":" WHITESPACE@34..35 " " PATH_TYPE@35..42 PATH@35..42 PATH_SEGMENT@35..42 COLON2@35..37 "::" NAME_REF@37..42 IDENT@37..42 "c_int" COMMA@42..43 "," WHITESPACE@43..44 " " PARAM@44..55 IDENT_PAT@44..46 NAME@44..46 IDENT@44..46 "ty" COLON@46..47 ":" WHITESPACE@47..48 " " PATH_TYPE@48..55 PATH@48..55 PATH_SEGMENT@48..55 COLON2@48..50 "::" NAME_REF@50..55 IDENT@50..55 "c_int" COMMA@55..56 "," WHITESPACE@56..57 " " PARAM@57..74 IDENT_PAT@57..65 NAME@57..65 IDENT@57..65 "protocol" COLON@65..66 ":" WHITESPACE@66..67 " " PATH_TYPE@67..74 PATH@67..74 PATH_SEGMENT@67..74 COLON2@67..69 "::" NAME_REF@69..74 IDENT@69..74 "c_int" R_PAREN@74..75 ")" WHITESPACE@75..76 " " RET_TYPE@76..86 THIN_ARROW@76..78 "->" WHITESPACE@78..79 " " PATH_TYPE@79..86 PATH@79..86 PATH_SEGMENT@79..86 COLON2@79..81 "::" NAME_REF@81..86 IDENT@81..86 "c_int" SEMICOLON@86..87 ";" WHITESPACE@87..92 "\n " FN@92..167 VISIBILITY@92..95 PUB_KW@92..95 "pub" WHITESPACE@95..96 " " FN_KW@96..98 "fn" WHITESPACE@98..99 " " NAME@99..103 IDENT@99..103 "bind" PARAM_LIST@103..155 L_PAREN@103..104 "(" PARAM@104..115 IDENT_PAT@104..106 NAME@104..106 IDENT@104..106 "fd" COLON@106..107 ":" WHITESPACE@107..108 " " PATH_TYPE@108..115 PATH@108..115 PATH_SEGMENT@108..115 COLON2@108..110 "::" NAME_REF@110..115 IDENT@110..115 "c_int" COMMA@115..116 "," WHITESPACE@116..117 " " PARAM@117..138 IDENT_PAT@117..121 NAME@117..121 IDENT@117..121 "addr" COLON@121..122 ":" WHITESPACE@122..123 " " PTR_TYPE@123..138 STAR@123..124 "*" CONST_KW@124..129 "const" WHITESPACE@129..130 " " PATH_TYPE@130..138 PATH@130..138 PATH_SEGMENT@130..138 NAME_REF@130..138 IDENT@130..138 "sockaddr" COMMA@138..139 "," WHITESPACE@139..140 " " PARAM@140..154 IDENT_PAT@140..143 NAME@140..143 IDENT@140..143 "len" COLON@143..144 ":" WHITESPACE@144..145 " " PATH_TYPE@145..154 PATH@145..154 PATH_SEGMENT@145..154 NAME_REF@145..154 IDENT@145..154 "socklen_t" R_PAREN@154..155 ")" WHITESPACE@155..156 " " RET_TYPE@156..166 THIN_ARROW@156..158 "->" WHITESPACE@158..159 " " PATH_TYPE@159..166 PATH@159..166 PATH_SEGMENT@159..166 COLON2@159..161 "::" NAME_REF@161..166 IDENT@161..166 "c_int" SEMICOLON@166..167 ";" WHITESPACE@167..172 "\n " FN@172..276 VISIBILITY@172..175 PUB_KW@172..175 "pub" WHITESPACE@175..176 " " FN_KW@176..178 "fn" WHITESPACE@178..179 " " NAME@179..186 IDENT@179..186 "connect" PARAM_LIST@186..264 L_PAREN@186..187 "(" PARAM@187..202 IDENT_PAT@187..193 NAME@187..193 IDENT@187..193 "socket" COLON@193..194 ":" WHITESPACE@194..195 " " PATH_TYPE@195..202 PATH@195..202 PATH_SEGMENT@195..202 COLON2@195..197 "::" NAME_REF@197..202 IDENT@197..202 "c_int" COMMA@202..203 "," WHITESPACE@203..204 " " PARAM@204..228 IDENT_PAT@204..211 NAME@204..211 IDENT@204..211 "address" COLON@211..212 ":" WHITESPACE@212..213 " " PTR_TYPE@213..228 STAR@213..214 "*" CONST_KW@214..219 "const" WHITESPACE@219..220 " " PATH_TYPE@220..228 PATH@220..228 PATH_SEGMENT@220..228 NAME_REF@220..228 IDENT@220..228 "sockaddr" COMMA@228..229 "," WHITESPACE@229..249 "\n " PARAM@249..263 IDENT_PAT@249..252 NAME@249..252 IDENT@249..252 "len" COLON@252..253 ":" WHITESPACE@253..254 " " PATH_TYPE@254..263 PATH@254..263 PATH_SEGMENT@254..263 NAME_REF@254..263 IDENT@254..263 "socklen_t" R_PAREN@263..264 ")" WHITESPACE@264..265 " " RET_TYPE@265..275 THIN_ARROW@265..267 "->" WHITESPACE@267..268 " " PATH_TYPE@268..275 PATH@268..275 PATH_SEGMENT@268..275 COLON2@268..270 "::" NAME_REF@270..275 IDENT@270..275 "c_int" SEMICOLON@275..276 ";" WHITESPACE@276..281 "\n " FN@281..341 VISIBILITY@281..284 PUB_KW@281..284 "pub" WHITESPACE@284..285 " " FN_KW@285..287 "fn" WHITESPACE@287..288 " " NAME@288..294 IDENT@288..294 "listen" PARAM_LIST@294..329 L_PAREN@294..295 "(" PARAM@295..310 IDENT_PAT@295..301 NAME@295..301 IDENT@295..301 "socket" COLON@301..302 ":" WHITESPACE@302..303 " " PATH_TYPE@303..310 PATH@303..310 PATH_SEGMENT@303..310 COLON2@303..305 "::" NAME_REF@305..310 IDENT@305..310 "c_int" COMMA@310..311 "," WHITESPACE@311..312 " " PARAM@312..328 IDENT_PAT@312..319 NAME@312..319 IDENT@312..319 "backlog" COLON@319..320 ":" WHITESPACE@320..321 " " PATH_TYPE@321..328 PATH@321..328 PATH_SEGMENT@321..328 COLON2@321..323 "::" NAME_REF@323..328 IDENT@323..328 "c_int" R_PAREN@328..329 ")" WHITESPACE@329..330 " " RET_TYPE@330..340 THIN_ARROW@330..332 "->" WHITESPACE@332..333 " " PATH_TYPE@333..340 PATH@333..340 PATH_SEGMENT@333..340 COLON2@333..335 "::" NAME_REF@335..340 IDENT@335..340 "c_int" SEMICOLON@340..341 ";" WHITESPACE@341..346 "\n " FN@346..469 VISIBILITY@346..349 PUB_KW@346..349 "pub" WHITESPACE@349..350 " " FN_KW@350..352 "fn" WHITESPACE@352..353 " " NAME@353..364 IDENT@353..364 "getsockname" PARAM_LIST@364..457 L_PAREN@364..365 "(" PARAM@365..380 IDENT_PAT@365..371 NAME@365..371 IDENT@365..371 "socket" COLON@371..372 ":" WHITESPACE@372..373 " " PATH_TYPE@373..380 PATH@373..380 PATH_SEGMENT@373..380 COLON2@373..375 "::" NAME_REF@375..380 IDENT@375..380 "c_int" COMMA@380..381 "," WHITESPACE@381..382 " " PARAM@382..404 IDENT_PAT@382..389 NAME@382..389 IDENT@382..389 "address" COLON@389..390 ":" WHITESPACE@390..391 " " PTR_TYPE@391..404 STAR@391..392 "*" MUT_KW@392..395 "mut" WHITESPACE@395..396 " " PATH_TYPE@396..404 PATH@396..404 PATH_SEGMENT@396..404 NAME_REF@396..404 IDENT@396..404 "sockaddr" COMMA@404..405 "," WHITESPACE@405..429 "\n " PARAM@429..456 IDENT_PAT@429..440 NAME@429..440 IDENT@429..440 "address_len" COLON@440..441 ":" WHITESPACE@441..442 " " PTR_TYPE@442..456 STAR@442..443 "*" MUT_KW@443..446 "mut" WHITESPACE@446..447 " " PATH_TYPE@447..456 PATH@447..456 PATH_SEGMENT@447..456 NAME_REF@447..456 IDENT@447..456 "socklen_t" R_PAREN@456..457 ")" WHITESPACE@457..458 " " RET_TYPE@458..468 THIN_ARROW@458..460 "->" WHITESPACE@460..461 " " PATH_TYPE@461..468 PATH@461..468 PATH_SEGMENT@461..468 COLON2@461..463 "::" NAME_REF@463..468 IDENT@463..468 "c_int" SEMICOLON@468..469 ";" WHITESPACE@469..474 "\n " FN@474..691 VISIBILITY@474..477 PUB_KW@474..477 "pub" WHITESPACE@477..478 " " FN_KW@478..480 "fn" WHITESPACE@480..481 " " NAME@481..491 IDENT@481..491 "getsockopt" PARAM_LIST@491..679 L_PAREN@491..492 "(" PARAM@492..507 IDENT_PAT@492..498 NAME@492..498 IDENT@492..498 "sockfd" COLON@498..499 ":" WHITESPACE@499..500 " " PATH_TYPE@500..507 PATH@500..507 PATH_SEGMENT@500..507 COLON2@500..502 "::" NAME_REF@502..507 IDENT@502..507 "c_int" COMMA@507..508 "," WHITESPACE@508..531 "\n " PARAM@531..545 IDENT_PAT@531..536 NAME@531..536 IDENT@531..536 "level" COLON@536..537 ":" WHITESPACE@537..538 " " PATH_TYPE@538..545 PATH@538..545 PATH_SEGMENT@538..545 COLON2@538..540 "::" NAME_REF@540..545 IDENT@540..545 "c_int" COMMA@545..546 "," WHITESPACE@546..569 "\n " PARAM@569..585 IDENT_PAT@569..576 NAME@569..576 IDENT@569..576 "optname" COLON@576..577 ":" WHITESPACE@577..578 " " PATH_TYPE@578..585 PATH@578..585 PATH_SEGMENT@578..585 COLON2@578..580 "::" NAME_REF@580..585 IDENT@580..585 "c_int" COMMA@585..586 "," WHITESPACE@586..609 "\n " PARAM@609..630 IDENT_PAT@609..615 NAME@609..615 IDENT@609..615 "optval" COLON@615..616 ":" WHITESPACE@616..617 " " PTR_TYPE@617..630 STAR@617..618 "*" MUT_KW@618..621 "mut" WHITESPACE@621..622 " " PATH_TYPE@622..630 PATH@622..630 PATH_SEGMENT@622..630 COLON2@622..624 "::" NAME_REF@624..630 IDENT@624..630 "c_void" COMMA@630..631 "," WHITESPACE@631..654 "\n " PARAM@654..678 IDENT_PAT@654..660 NAME@654..660 IDENT@654..660 "optlen" COLON@660..661 ":" WHITESPACE@661..662 " " PTR_TYPE@662..678 STAR@662..663 "*" MUT_KW@663..666 "mut" WHITESPACE@666..667 " " PATH_TYPE@667..678 PATH@667..678 PATH_SEGMENT@667..678 COLON2@667..669 "::" NAME_REF@669..678 IDENT@669..678 "socklen_t" R_PAREN@678..679 ")" WHITESPACE@679..680 " " RET_TYPE@680..690 THIN_ARROW@680..682 "->" WHITESPACE@682..683 " " PATH_TYPE@683..690 PATH@683..690 PATH_SEGMENT@683..690 COLON2@683..685 "::" NAME_REF@685..690 IDENT@685..690 "c_int" SEMICOLON@690..691 ";" WHITESPACE@691..696 "\n " FN@696..864 VISIBILITY@696..699 PUB_KW@696..699 "pub" WHITESPACE@699..700 " " FN_KW@700..702 "fn" WHITESPACE@702..703 " " NAME@703..713 IDENT@703..713 "setsockopt" PARAM_LIST@713..852 L_PAREN@713..714 "(" PARAM@714..729 IDENT_PAT@714..720 NAME@714..720 IDENT@714..720 "socket" COLON@720..721 ":" WHITESPACE@721..722 " " PATH_TYPE@722..729 PATH@722..729 PATH_SEGMENT@722..729 COLON2@722..724 "::" NAME_REF@724..729 IDENT@724..729 "c_int" COMMA@729..730 "," WHITESPACE@730..731 " " PARAM@731..745 IDENT_PAT@731..736 NAME@731..736 IDENT@731..736 "level" COLON@736..737 ":" WHITESPACE@737..738 " " PATH_TYPE@738..745 PATH@738..745 PATH_SEGMENT@738..745 COLON2@738..740 "::" NAME_REF@740..745 IDENT@740..745 "c_int" COMMA@745..746 "," WHITESPACE@746..747 " " PARAM@747..760 IDENT_PAT@747..751 NAME@747..751 IDENT@747..751 "name" COLON@751..752 ":" WHITESPACE@752..753 " " PATH_TYPE@753..760 PATH@753..760 PATH_SEGMENT@753..760 COLON2@753..755 "::" NAME_REF@755..760 IDENT@755..760 "c_int" COMMA@760..761 "," WHITESPACE@761..784 "\n " PARAM@784..806 IDENT_PAT@784..789 NAME@784..789 IDENT@784..789 "value" COLON@789..790 ":" WHITESPACE@790..791 " " PTR_TYPE@791..806 STAR@791..792 "*" CONST_KW@792..797 "const" WHITESPACE@797..798 " " PATH_TYPE@798..806 PATH@798..806 PATH_SEGMENT@798..806 COLON2@798..800 "::" NAME_REF@800..806 IDENT@800..806 "c_void" COMMA@806..807 "," WHITESPACE@807..830 "\n " PARAM@830..851 IDENT_PAT@830..840 NAME@830..840 IDENT@830..840 "option_len" COLON@840..841 ":" WHITESPACE@841..842 " " PATH_TYPE@842..851 PATH@842..851 PATH_SEGMENT@842..851 NAME_REF@842..851 IDENT@842..851 "socklen_t" R_PAREN@851..852 ")" WHITESPACE@852..853 " " RET_TYPE@853..863 THIN_ARROW@853..855 "->" WHITESPACE@855..856 " " PATH_TYPE@856..863 PATH@856..863 PATH_SEGMENT@856..863 COLON2@856..858 "::" NAME_REF@858..863 IDENT@858..863 "c_int" SEMICOLON@863..864 ";" WHITESPACE@864..869 "\n " FN@869..992 VISIBILITY@869..872 PUB_KW@869..872 "pub" WHITESPACE@872..873 " " FN_KW@873..875 "fn" WHITESPACE@875..876 " " NAME@876..887 IDENT@876..887 "getpeername" PARAM_LIST@887..980 L_PAREN@887..888 "(" PARAM@888..903 IDENT_PAT@888..894 NAME@888..894 IDENT@888..894 "socket" COLON@894..895 ":" WHITESPACE@895..896 " " PATH_TYPE@896..903 PATH@896..903 PATH_SEGMENT@896..903 COLON2@896..898 "::" NAME_REF@898..903 IDENT@898..903 "c_int" COMMA@903..904 "," WHITESPACE@904..905 " " PARAM@905..927 IDENT_PAT@905..912 NAME@905..912 IDENT@905..912 "address" COLON@912..913 ":" WHITESPACE@913..914 " " PTR_TYPE@914..927 STAR@914..915 "*" MUT_KW@915..918 "mut" WHITESPACE@918..919 " " PATH_TYPE@919..927 PATH@919..927 PATH_SEGMENT@919..927 NAME_REF@919..927 IDENT@919..927 "sockaddr" COMMA@927..928 "," WHITESPACE@928..952 "\n " PARAM@952..979 IDENT_PAT@952..963 NAME@952..963 IDENT@952..963 "address_len" COLON@963..964 ":" WHITESPACE@964..965 " " PTR_TYPE@965..979 STAR@965..966 "*" MUT_KW@966..969 "mut" WHITESPACE@969..970 " " PATH_TYPE@970..979 PATH@970..979 PATH_SEGMENT@970..979 NAME_REF@970..979 IDENT@970..979 "socklen_t" R_PAREN@979..980 ")" WHITESPACE@980..981 " " RET_TYPE@981..991 THIN_ARROW@981..983 "->" WHITESPACE@983..984 " " PATH_TYPE@984..991 PATH@984..991 PATH_SEGMENT@984..991 COLON2@984..986 "::" NAME_REF@986..991 IDENT@986..991 "c_int" SEMICOLON@991..992 ";" WHITESPACE@992..997 "\n " FN@997..1173 VISIBILITY@997..1000 PUB_KW@997..1000 "pub" WHITESPACE@1000..1001 " " FN_KW@1001..1003 "fn" WHITESPACE@1003..1004 " " NAME@1004..1010 IDENT@1004..1010 "sendto" PARAM_LIST@1010..1159 L_PAREN@1010..1011 "(" PARAM@1011..1026 IDENT_PAT@1011..1017 NAME@1011..1017 IDENT@1011..1017 "socket" COLON@1017..1018 ":" WHITESPACE@1018..1019 " " PATH_TYPE@1019..1026 PATH@1019..1026 PATH_SEGMENT@1019..1026 COLON2@1019..1021 "::" NAME_REF@1021..1026 IDENT@1021..1026 "c_int" COMMA@1026..1027 "," WHITESPACE@1027..1028 " " PARAM@1028..1048 IDENT_PAT@1028..1031 NAME@1028..1031 IDENT@1028..1031 "buf" COLON@1031..1032 ":" WHITESPACE@1032..1033 " " PTR_TYPE@1033..1048 STAR@1033..1034 "*" CONST_KW@1034..1039 "const" WHITESPACE@1039..1040 " " PATH_TYPE@1040..1048 PATH@1040..1048 PATH_SEGMENT@1040..1048 COLON2@1040..1042 "::" NAME_REF@1042..1048 IDENT@1042..1048 "c_void" COMMA@1048..1049 "," WHITESPACE@1049..1050 " " PARAM@1050..1063 IDENT_PAT@1050..1053 NAME@1050..1053 IDENT@1050..1053 "len" COLON@1053..1054 ":" WHITESPACE@1054..1055 " " PATH_TYPE@1055..1063 PATH@1055..1063 PATH_SEGMENT@1055..1063 COLON2@1055..1057 "::" NAME_REF@1057..1063 IDENT@1057..1063 "size_t" COMMA@1063..1064 "," WHITESPACE@1064..1083 "\n " PARAM@1083..1097 IDENT_PAT@1083..1088 NAME@1083..1088 IDENT@1083..1088 "flags" COLON@1088..1089 ":" WHITESPACE@1089..1090 " " PATH_TYPE@1090..1097 PATH@1090..1097 PATH_SEGMENT@1090..1097 COLON2@1090..1092 "::" NAME_REF@1092..1097 IDENT@1092..1097 "c_int" COMMA@1097..1098 "," WHITESPACE@1098..1099 " " PARAM@1099..1120 IDENT_PAT@1099..1103 NAME@1099..1103 IDENT@1099..1103 "addr" COLON@1103..1104 ":" WHITESPACE@1104..1105 " " PTR_TYPE@1105..1120 STAR@1105..1106 "*" CONST_KW@1106..1111 "const" WHITESPACE@1111..1112 " " PATH_TYPE@1112..1120 PATH@1112..1120 PATH_SEGMENT@1112..1120 NAME_REF@1112..1120 IDENT@1112..1120 "sockaddr" COMMA@1120..1121 "," WHITESPACE@1121..1140 "\n " PARAM@1140..1158 IDENT_PAT@1140..1147 NAME@1140..1147 IDENT@1140..1147 "addrlen" COLON@1147..1148 ":" WHITESPACE@1148..1149 " " PATH_TYPE@1149..1158 PATH@1149..1158 PATH_SEGMENT@1149..1158 NAME_REF@1149..1158 IDENT@1149..1158 "socklen_t" R_PAREN@1158..1159 ")" WHITESPACE@1159..1160 " " RET_TYPE@1160..1172 THIN_ARROW@1160..1162 "->" WHITESPACE@1162..1163 " " PATH_TYPE@1163..1172 PATH@1163..1172 PATH_SEGMENT@1163..1172 COLON2@1163..1165 "::" NAME_REF@1165..1172 IDENT@1165..1172 "ssize_t" SEMICOLON@1172..1173 ";" WHITESPACE@1173..1178 "\n " FN@1178..1289 VISIBILITY@1178..1181 PUB_KW@1178..1181 "pub" WHITESPACE@1181..1182 " " FN_KW@1182..1184 "fn" WHITESPACE@1184..1185 " " NAME@1185..1189 IDENT@1185..1189 "send" PARAM_LIST@1189..1275 L_PAREN@1189..1190 "(" PARAM@1190..1205 IDENT_PAT@1190..1196 NAME@1190..1196 IDENT@1190..1196 "socket" COLON@1196..1197 ":" WHITESPACE@1197..1198 " " PATH_TYPE@1198..1205 PATH@1198..1205 PATH_SEGMENT@1198..1205 COLON2@1198..1200 "::" NAME_REF@1200..1205 IDENT@1200..1205 "c_int" COMMA@1205..1206 "," WHITESPACE@1206..1207 " " PARAM@1207..1227 IDENT_PAT@1207..1210 NAME@1207..1210 IDENT@1207..1210 "buf" COLON@1210..1211 ":" WHITESPACE@1211..1212 " " PTR_TYPE@1212..1227 STAR@1212..1213 "*" CONST_KW@1213..1218 "const" WHITESPACE@1218..1219 " " PATH_TYPE@1219..1227 PATH@1219..1227 PATH_SEGMENT@1219..1227 COLON2@1219..1221 "::" NAME_REF@1221..1227 IDENT@1221..1227 "c_void" COMMA@1227..1228 "," WHITESPACE@1228..1229 " " PARAM@1229..1242 IDENT_PAT@1229..1232 NAME@1229..1232 IDENT@1229..1232 "len" COLON@1232..1233 ":" WHITESPACE@1233..1234 " " PATH_TYPE@1234..1242 PATH@1234..1242 PATH_SEGMENT@1234..1242 COLON2@1234..1236 "::" NAME_REF@1236..1242 IDENT@1236..1242 "size_t" COMMA@1242..1243 "," WHITESPACE@1243..1260 "\n " PARAM@1260..1274 IDENT_PAT@1260..1265 NAME@1260..1265 IDENT@1260..1265 "flags" COLON@1265..1266 ":" WHITESPACE@1266..1267 " " PATH_TYPE@1267..1274 PATH@1267..1274 PATH_SEGMENT@1267..1274 COLON2@1267..1269 "::" NAME_REF@1269..1274 IDENT@1269..1274 "c_int" R_PAREN@1274..1275 ")" WHITESPACE@1275..1276 " " RET_TYPE@1276..1288 THIN_ARROW@1276..1278 "->" WHITESPACE@1278..1279 " " PATH_TYPE@1279..1288 PATH@1279..1288 PATH_SEGMENT@1279..1288 COLON2@1279..1281 "::" NAME_REF@1281..1288 IDENT@1281..1288 "ssize_t" SEMICOLON@1288..1289 ";" WHITESPACE@1289..1294 "\n " FN@1294..1481 VISIBILITY@1294..1297 PUB_KW@1294..1297 "pub" WHITESPACE@1297..1298 " " FN_KW@1298..1300 "fn" WHITESPACE@1300..1301 " " NAME@1301..1309 IDENT@1301..1309 "recvfrom" PARAM_LIST@1309..1467 L_PAREN@1309..1310 "(" PARAM@1310..1325 IDENT_PAT@1310..1316 NAME@1310..1316 IDENT@1310..1316 "socket" COLON@1316..1317 ":" WHITESPACE@1317..1318 " " PATH_TYPE@1318..1325 PATH@1318..1325 PATH_SEGMENT@1318..1325 COLON2@1318..1320 "::" NAME_REF@1320..1325 IDENT@1320..1325 "c_int" COMMA@1325..1326 "," WHITESPACE@1326..1327 " " PARAM@1327..1345 IDENT_PAT@1327..1330 NAME@1327..1330 IDENT@1327..1330 "buf" COLON@1330..1331 ":" WHITESPACE@1331..1332 " " PTR_TYPE@1332..1345 STAR@1332..1333 "*" MUT_KW@1333..1336 "mut" WHITESPACE@1336..1337 " " PATH_TYPE@1337..1345 PATH@1337..1345 PATH_SEGMENT@1337..1345 COLON2@1337..1339 "::" NAME_REF@1339..1345 IDENT@1339..1345 "c_void" COMMA@1345..1346 "," WHITESPACE@1346..1347 " " PARAM@1347..1360 IDENT_PAT@1347..1350 NAME@1347..1350 IDENT@1347..1350 "len" COLON@1350..1351 ":" WHITESPACE@1351..1352 " " PATH_TYPE@1352..1360 PATH@1352..1360 PATH_SEGMENT@1352..1360 COLON2@1352..1354 "::" NAME_REF@1354..1360 IDENT@1354..1360 "size_t" COMMA@1360..1361 "," WHITESPACE@1361..1382 "\n " PARAM@1382..1396 IDENT_PAT@1382..1387 NAME@1382..1387 IDENT@1382..1387 "flags" COLON@1387..1388 ":" WHITESPACE@1388..1389 " " PATH_TYPE@1389..1396 PATH@1389..1396 PATH_SEGMENT@1389..1396 COLON2@1389..1391 "::" NAME_REF@1391..1396 IDENT@1391..1396 "c_int" COMMA@1396..1397 "," WHITESPACE@1397..1398 " " PARAM@1398..1419 IDENT_PAT@1398..1402 NAME@1398..1402 IDENT@1398..1402 "addr" COLON@1402..1403 ":" WHITESPACE@1403..1404 " " PTR_TYPE@1404..1419 STAR@1404..1405 "*" MUT_KW@1405..1408 "mut" WHITESPACE@1408..1409 " " PATH_TYPE@1409..1419 PATH@1409..1419 PATH_SEGMENT@1409..1419 COLON2@1409..1411 "::" NAME_REF@1411..1419 IDENT@1411..1419 "sockaddr" COMMA@1419..1420 "," WHITESPACE@1420..1441 "\n " PARAM@1441..1466 IDENT_PAT@1441..1448 NAME@1441..1448 IDENT@1441..1448 "addrlen" COLON@1448..1449 ":" WHITESPACE@1449..1450 " " PTR_TYPE@1450..1466 STAR@1450..1451 "*" MUT_KW@1451..1454 "mut" WHITESPACE@1454..1455 " " PATH_TYPE@1455..1466 PATH@1455..1466 PATH_SEGMENT@1455..1466 COLON2@1455..1457 "::" NAME_REF@1457..1466 IDENT@1457..1466 "socklen_t" R_PAREN@1466..1467 ")" WHITESPACE@1467..1468 " " RET_TYPE@1468..1480 THIN_ARROW@1468..1470 "->" WHITESPACE@1470..1471 " " PATH_TYPE@1471..1480 PATH@1471..1480 PATH_SEGMENT@1471..1480 COLON2@1471..1473 "::" NAME_REF@1473..1480 IDENT@1473..1480 "ssize_t" SEMICOLON@1480..1481 ";" WHITESPACE@1481..1486 "\n " FN@1486..1595 VISIBILITY@1486..1489 PUB_KW@1486..1489 "pub" WHITESPACE@1489..1490 " " FN_KW@1490..1492 "fn" WHITESPACE@1492..1493 " " NAME@1493..1497 IDENT@1493..1497 "recv" PARAM_LIST@1497..1581 L_PAREN@1497..1498 "(" PARAM@1498..1513 IDENT_PAT@1498..1504 NAME@1498..1504 IDENT@1498..1504 "socket" COLON@1504..1505 ":" WHITESPACE@1505..1506 " " PATH_TYPE@1506..1513 PATH@1506..1513 PATH_SEGMENT@1506..1513 COLON2@1506..1508 "::" NAME_REF@1508..1513 IDENT@1508..1513 "c_int" COMMA@1513..1514 "," WHITESPACE@1514..1515 " " PARAM@1515..1533 IDENT_PAT@1515..1518 NAME@1515..1518 IDENT@1515..1518 "buf" COLON@1518..1519 ":" WHITESPACE@1519..1520 " " PTR_TYPE@1520..1533 STAR@1520..1521 "*" MUT_KW@1521..1524 "mut" WHITESPACE@1524..1525 " " PATH_TYPE@1525..1533 PATH@1525..1533 PATH_SEGMENT@1525..1533 COLON2@1525..1527 "::" NAME_REF@1527..1533 IDENT@1527..1533 "c_void" COMMA@1533..1534 "," WHITESPACE@1534..1535 " " PARAM@1535..1548 IDENT_PAT@1535..1538 NAME@1535..1538 IDENT@1535..1538 "len" COLON@1538..1539 ":" WHITESPACE@1539..1540 " " PATH_TYPE@1540..1548 PATH@1540..1548 PATH_SEGMENT@1540..1548 COLON2@1540..1542 "::" NAME_REF@1542..1548 IDENT@1542..1548 "size_t" COMMA@1548..1549 "," WHITESPACE@1549..1566 "\n " PARAM@1566..1580 IDENT_PAT@1566..1571 NAME@1566..1571 IDENT@1566..1571 "flags" COLON@1571..1572 ":" WHITESPACE@1572..1573 " " PATH_TYPE@1573..1580 PATH@1573..1580 PATH_SEGMENT@1573..1580 COLON2@1573..1575 "::" NAME_REF@1575..1580 IDENT@1575..1580 "c_int" R_PAREN@1580..1581 ")" WHITESPACE@1581..1582 " " RET_TYPE@1582..1594 THIN_ARROW@1582..1584 "->" WHITESPACE@1584..1585 " " PATH_TYPE@1585..1594 PATH@1585..1594 PATH_SEGMENT@1585..1594 COLON2@1585..1587 "::" NAME_REF@1587..1594 IDENT@1587..1594 "ssize_t" SEMICOLON@1594..1595 ";" WHITESPACE@1595..1596 "\n" R_CURLY@1596..1597 "}" WHITESPACE@1597..1598 "\n"