MCPcopy Index your code
hub / github.com/RustPython/RustPython / istitle

Method istitle

crates/vm/src/bytes_inner.rs:366–396  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

364 }
365
366 pub fn istitle(&self) -> bool {
367 if self.elements.is_empty() {
368 return false;
369 }
370
371 let mut iter = self.elements.iter().peekable();
372 let mut prev_cased = false;
373
374 while let Some(c) = iter.next() {
375 let current = char::from(*c);
376 let next = if let Some(k) = iter.peek() {
377 char::from(**k)
378 } else if current.is_uppercase() {
379 return !prev_cased;
380 } else {
381 return prev_cased;
382 };
383
384 let is_cased = current.to_uppercase().next().unwrap() != current
385 || current.to_lowercase().next().unwrap() != current;
386 if (is_cased && next.is_uppercase() && !prev_cased)
387 || (!is_cased && next.is_lowercase())
388 {
389 return false;
390 }
391
392 prev_cased = is_cased;
393 }
394
395 true
396 }
397
398 pub fn lower(&self) -> Vec<u8> {
399 self.elements.to_ascii_lowercase()

Callers 3

builtin_str.pyFile · 0.45
builtin_bytes.pyFile · 0.45

Calls 9

to_uppercaseMethod · 0.80
to_lowercaseMethod · 0.80
is_emptyMethod · 0.45
iterMethod · 0.45
nextMethod · 0.45
peekMethod · 0.45
is_uppercaseMethod · 0.45
unwrapMethod · 0.45
is_lowercaseMethod · 0.45

Tested by

no test coverage detected