Pick a name for the subcomponents of an ArtiPathComponent
Context
We need a name for the individual subcomponents (substrings) of non-leaf ArtiPathComponent
s. These subcomponents (let's call them "slugs" for the purposes of this ticket) have the following properties:
- slugs can be concatenated to build file names
- when concatenating slugs, they should be separated using
/
,+
, or.
. The first slug should not be empty - slugs should not be concatenated without separators (for security reasons)
- their charset is: lowercase ASCII alphanumerics and underscore. We may extend this to allow additional characters in the future, but
/
,+
, and.
(the slug separators) will never be valid slug characters - they may be empty, but most (all?) of our use cases don't allow empty slugs
HsNickname
s, non-leaf ArtiPathComponent
s are slugs, as are the non-leaf components that make up KeySpecifier
. The leaf component of an ArtiPath
consists of one or more slugs, concatenated using +
(for example, some keys have a TimePeriod
slug)
Some possible names
Here are some possible names for the slugs described here:
- Slug
- PathElement
- FnameElement
- NameElement
- IdElt
- PathSlug
- IdStr
- FsId
- FnameId
- PathBlob
- PathSlug
- PathChunk
- Name
- Nick
- ...something else?
Platform-specific restrictions
On Windows, the following slugs are forbidden:
- con
- prn
- aux
- nul
- com1, com2, com3, com4, com5, com6, com7, com8, com9, com0
- lpt1, lpt2, lpt3, lpt4, lpt5, lpt6, lpt7, lpt8, lpt9, lpt0