(args: &[ArrayRef])
| 243 | } |
| 244 | |
| 245 | fn initcap_utf8view(args: &[ArrayRef]) -> Result<ArrayRef> { |
| 246 | let string_view_array = as_string_view_array(&args[0])?; |
| 247 | let len = string_view_array.len(); |
| 248 | let mut builder = StringViewArrayBuilder::with_capacity(len); |
| 249 | let mut container = String::new(); |
| 250 | |
| 251 | let nulls = string_view_array.nulls().cloned(); |
| 252 | if let Some(ref n) = nulls { |
| 253 | for i in 0..len { |
| 254 | if n.is_null(i) { |
| 255 | builder.append_placeholder(); |
| 256 | } else { |
| 257 | // SAFETY: not null per check above. |
| 258 | let s = unsafe { string_view_array.value_unchecked(i) }; |
| 259 | initcap_string(s, &mut container); |
| 260 | builder.append_value(&container); |
| 261 | } |
| 262 | } |
| 263 | } else { |
| 264 | for i in 0..len { |
| 265 | // SAFETY: no null buffer means every index is valid. |
| 266 | let s = unsafe { string_view_array.value_unchecked(i) }; |
| 267 | initcap_string(s, &mut container); |
| 268 | builder.append_value(&container); |
| 269 | } |
| 270 | } |
| 271 | |
| 272 | Ok(Arc::new(builder.finish(nulls)?) as ArrayRef) |
| 273 | } |
| 274 | |
| 275 | fn initcap_string(input: &str, container: &mut String) { |
| 276 | container.clear(); |
nothing calls this directly
no test coverage detected
searching dependent graphs…