in source/resource_name.c [16:45]
int aws_resource_name_init_from_cur(struct aws_resource_name *arn, const struct aws_byte_cursor *input) {
struct aws_byte_cursor arn_parts[ARN_PARTS_COUNT];
struct aws_array_list arn_part_list;
aws_array_list_init_static(&arn_part_list, arn_parts, ARN_PARTS_COUNT, sizeof(struct aws_byte_cursor));
if (aws_byte_cursor_split_on_char_n(input, ARN_DELIMETER_CHAR, ARN_SPLIT_COUNT, &arn_part_list)) {
return aws_raise_error(AWS_ERROR_MALFORMED_INPUT_STRING);
}
struct aws_byte_cursor *arn_prefix;
if (aws_array_list_get_at_ptr(&arn_part_list, (void **)&arn_prefix, 0) ||
!aws_byte_cursor_eq_c_str(arn_prefix, "arn")) {
return aws_raise_error(AWS_ERROR_MALFORMED_INPUT_STRING);
}
if (aws_array_list_get_at(&arn_part_list, &arn->partition, 1)) {
return aws_raise_error(AWS_ERROR_MALFORMED_INPUT_STRING);
}
if (aws_array_list_get_at(&arn_part_list, &arn->service, 2)) {
return aws_raise_error(AWS_ERROR_MALFORMED_INPUT_STRING);
}
if (aws_array_list_get_at(&arn_part_list, &arn->region, 3)) {
return aws_raise_error(AWS_ERROR_MALFORMED_INPUT_STRING);
}
if (aws_array_list_get_at(&arn_part_list, &arn->account_id, 4) || aws_byte_cursor_eq_c_str(&arn->account_id, "")) {
return aws_raise_error(AWS_ERROR_MALFORMED_INPUT_STRING);
}
if (aws_array_list_get_at(&arn_part_list, &arn->resource_id, 5)) {
return aws_raise_error(AWS_ERROR_MALFORMED_INPUT_STRING);
}
return AWS_OP_SUCCESS;
}