xref: /aosp_15_r20/external/libconfig/TODO (revision 2e9d491483b805f09ea864149eadd5680efcc72a)
1*2e9d4914SAndroid Build Coastguard WorkerTO-DOs:
2*2e9d4914SAndroid Build Coastguard Worker
3*2e9d4914SAndroid Build Coastguard WorkerThese are features that have been requested, and have been considered,
4*2e9d4914SAndroid Build Coastguard Workerbut are not yet implemented, because I'm undecided about how or whether they
5*2e9d4914SAndroid Build Coastguard Workershould be implemented, and/or because they are difficult and/or time-consuming
6*2e9d4914SAndroid Build Coastguard Workerto implement.
7*2e9d4914SAndroid Build Coastguard Worker
8*2e9d4914SAndroid Build Coastguard WorkerAlso, some of these features tend to push libconfig toward becoming a
9*2e9d4914SAndroid Build Coastguard Workergeneral-purpose structured-data storage mechanism, which is really not the
10*2e9d4914SAndroid Build Coastguard Workerintended purpose of this library. I think something like sqlite is better
11*2e9d4914SAndroid Build Coastguard Workersuited for that sort of thing.
12*2e9d4914SAndroid Build Coastguard Worker
13*2e9d4914SAndroid Build Coastguard Worker
14*2e9d4914SAndroid Build Coastguard Worker* Add support for copying settings from one configuration to another. Need a
15*2e9d4914SAndroid Build Coastguard Worker  recursive function to copy a setting and call itself on all child settings.
16*2e9d4914SAndroid Build Coastguard Worker
17*2e9d4914SAndroid Build Coastguard Worker
18*2e9d4914SAndroid Build Coastguard Worker* Add a += operator, so that additional elements can be appended to a list or
19*2e9d4914SAndroid Build Coastguard Worker  array. The issue with this is defining a consistent syntax. For example:
20*2e9d4914SAndroid Build Coastguard Worker
21*2e9d4914SAndroid Build Coastguard Worker  x = ( 1, 2, 3 );
22*2e9d4914SAndroid Build Coastguard Worker  x += ( 4, 5 );
23*2e9d4914SAndroid Build Coastguard Worker
24*2e9d4914SAndroid Build Coastguard Worker  Should this result in ( 1, 2, 3, 4, 5 ), or ( 1, 2, 3, ( 4, 5 ))? I believe
25*2e9d4914SAndroid Build Coastguard Worker  it should be the latter. However, only the former makes sense for arrays.
26*2e9d4914SAndroid Build Coastguard Worker
27*2e9d4914SAndroid Build Coastguard Worker
28*2e9d4914SAndroid Build Coastguard Worker* Add the ability to insert/delete elements at any position in a list or
29*2e9d4914SAndroid Build Coastguard Worker  array. A simple implementation would be expensive (shift all the elements
30*2e9d4914SAndroid Build Coastguard Worker  by one for every insert/delete), and a more efficient implementation would
31*2e9d4914SAndroid Build Coastguard Worker  add a lot of complexity to the library.
32*2e9d4914SAndroid Build Coastguard Worker
33*2e9d4914SAndroid Build Coastguard Worker
34*2e9d4914SAndroid Build Coastguard Worker* Add limited support for preserving comments.
35*2e9d4914SAndroid Build Coastguard Worker
36*2e9d4914SAndroid Build Coastguard Worker
37*2e9d4914SAndroid Build Coastguard Worker* Add support for unicode strings? A bit problematic, since flex doesn't
38*2e9d4914SAndroid Build Coastguard Worker  support unicode input, AFAICT. But maybe supply convenience functions to
39*2e9d4914SAndroid Build Coastguard Worker  convert between parsed UTF-8 strings and std::wstring.
40