pub fn valid_app_name(s: &str) -> boolExpand description
Whether s is an app name: 1..=MAX_APP_NAME_LEN bytes of ASCII letters, digits, -, _
and .; starts and ends with a letter or digit (so no ., .., hidden or trailing-dot
names); no separators; not a Windows reserved device name (with or without an extension).
Case is preserved on disk but is significant for identity on every platform: two names that
differ only by case are refused as conflicting by AppRoot::new when one already exists.