1 //
2 // ====================================================================
3 // Copyright (c) 2003-2011 Barry A Scott.  All rights reserved.
4 //
5 // This software is licensed as described in the file LICENSE.txt,
6 // which you should have received as part of this distribution.
7 //
8 // ====================================================================
9 //
10 //
11 //  pysvn_enum_string.cpp
12 //
13 #if defined( _MSC_VER )
14 // disable warning C4786: symbol greater than 255 character,
15 // nessesary to ignore as <map> causes lots of warning
16 #pragma warning(disable: 4786)
17 #endif
18 
19 #include "pysvn.hpp"
20 
EnumString()21 template <> EnumString< svn_opt_revision_kind >::EnumString()
22 : m_type_name( "opt_revision_kind" )
23 {
24     // No revision information given.
25     add( svn_opt_revision_unspecified, "unspecified" );
26 
27     // revision given as number
28     add( svn_opt_revision_number, "number" );
29 
30     // revision given as date
31     add( svn_opt_revision_date, "date" );
32 
33     // rev of most recent change
34     add( svn_opt_revision_committed, "committed" );
35 
36     // (rev of most recent change) - 1
37     add( svn_opt_revision_previous, "previous" );
38 
39     // .svn/entries current revision
40     add( svn_opt_revision_base, "base" );
41 
42     // current, plus local mods
43     add( svn_opt_revision_working, "working" );
44 
45     // repository youngest
46     add( svn_opt_revision_head, "head" );
47 }
48 
EnumString()49 template <> EnumString< svn_wc_notify_action_t >::EnumString()
50 : m_type_name( "wc_notify_action" )
51 {
52     // Adding a path to revision control.
53     add( svn_wc_notify_add, "add" );
54 
55     // Copying a versioned path.
56     add( svn_wc_notify_copy, "copy" );
57 
58     // Deleting a versioned path.
59     add( svn_wc_notify_delete, "delete" );
60 
61     // Restoring a missing path from the pristine text-base.
62     add( svn_wc_notify_restore, "restore" );
63 
64     // Reverting a modified path.
65     add( svn_wc_notify_revert, "revert" );
66 
67     // A revert operation has failed.
68     add( svn_wc_notify_failed_revert, "failed_revert" );
69 
70     // Resolving a conflict.
71     add( svn_wc_notify_resolved, "resolved" );
72 
73     // Skipping a path.
74     add( svn_wc_notify_skip, "skip" );
75 
76     // Got a delete in an update.
77     add( svn_wc_notify_update_delete, "update_delete" );
78 
79     // Got an add in an update.
80     add( svn_wc_notify_update_add, "update_add" );
81 
82     // Got any other action in an update.
83     add( svn_wc_notify_update_update, "update_update" );
84 
85     // The last notification in an update (including updates of externals).
86     add( svn_wc_notify_update_completed, "update_completed" );
87 
88     // Updating an external module.
89     add( svn_wc_notify_update_external, "update_external" );
90 
91     // The last notification in a status (including status on externals).
92     add( svn_wc_notify_status_completed, "status_completed" );
93 
94     // Running status on an external module.
95     add( svn_wc_notify_status_external, "status_external" );
96 
97     // Committing a modification.
98     add( svn_wc_notify_commit_modified, "commit_modified" );
99 
100     // Committing an addition.
101     add( svn_wc_notify_commit_added, "commit_added" );
102 
103     // Committing a deletion.
104     add( svn_wc_notify_commit_deleted, "commit_deleted" );
105 
106     // Committing a replacement.
107     add( svn_wc_notify_commit_replaced, "commit_replaced" );
108 
109     // Transmitting post-fix text-delta data for a file.
110     add( svn_wc_notify_commit_postfix_txdelta, "commit_postfix_txdelta" );
111 
112     // Processed a single revision's blame.
113     add( svn_wc_notify_blame_revision, "annotate_revision" );
114 
115 #if defined( PYSVN_HAS_CLIENT_LOCK )
116     // Locking a path.
117     add( svn_wc_notify_locked, "locked" );
118 
119     //Unlocking a path.
120     add( svn_wc_notify_unlocked, "unlocked" );
121 
122     // Failed to lock a path.
123     add( svn_wc_notify_failed_lock, "failed_lock" );
124 
125     // Failed to unlock a path.
126     add( svn_wc_notify_failed_unlock, "failed_unlock" );
127 #endif
128 #if defined( PYSVN_HAS_SVN_WC_NOTIFY_ACTION_T__1_5 )
129     add( svn_wc_notify_exists, "exists" );
130     add( svn_wc_notify_changelist_set, "changelist_set" );
131     add( svn_wc_notify_changelist_clear, "changelist_clear" );
132     add( svn_wc_notify_changelist_moved, "changelist_moved" );
133     add( svn_wc_notify_merge_begin, "merge_begin" );
134     add( svn_wc_notify_foreign_merge_begin, "foreign_merge_begin" );
135     add( svn_wc_notify_update_replace, "update_replace" );
136 #endif
137 
138 #if defined( PYSVN_HAS_SVN_1_6 )
139     add( svn_wc_notify_property_added, "property_added" );
140     add( svn_wc_notify_property_modified, "property_modified" );
141     add( svn_wc_notify_property_deleted, "property_deleted" );
142     add( svn_wc_notify_property_deleted_nonexistent, "property_deleted_nonexistent" );
143     add( svn_wc_notify_revprop_set, "revprop_set" );
144     add( svn_wc_notify_revprop_deleted, "revprop_deleted" );
145     add( svn_wc_notify_merge_completed, "merge_completed" );
146     add( svn_wc_notify_tree_conflict, "tree_conflict" );
147     add( svn_wc_notify_failed_external, "failed_external" );
148 #endif
149 #if defined( PYSVN_HAS_SVN_1_7 )
150     add( svn_wc_notify_update_started, "update_started" );
151     add( svn_wc_notify_update_skip_obstruction, "update_skip_obstruction" );
152     add( svn_wc_notify_update_skip_working_only, "update_skip_working_only" );
153     add( svn_wc_notify_update_external_removed, "update_external_removed" );
154     add( svn_wc_notify_update_shadowed_add, "update_shadowed_add" );
155     add( svn_wc_notify_update_shadowed_update, "update_shadowed_update" );
156     add( svn_wc_notify_update_shadowed_delete, "update_shadowed_delete" );
157     add( svn_wc_notify_merge_record_info, "merge_record_info" );
158     add( svn_wc_notify_upgraded_path, "upgraded_path" );
159     add( svn_wc_notify_merge_record_info_begin, "merge_record_info_begin" );
160     add( svn_wc_notify_merge_elide_info, "merge_elide_info" );
161     add( svn_wc_notify_patch, "patch" );
162     add( svn_wc_notify_patch_applied_hunk, "patch_applied_hunk" );
163     add( svn_wc_notify_patch_rejected_hunk, "patch_rejected_hunk" );
164     add( svn_wc_notify_patch_hunk_already_applied, "patch_hunk_already_applied" );
165     add( svn_wc_notify_commit_copied, "commit_copied" );
166     add( svn_wc_notify_commit_copied_replaced, "commit_copied_replaced" );
167     add( svn_wc_notify_url_redirect, "url_redirect" );
168     add( svn_wc_notify_path_nonexistent, "path_nonexistent" );
169     add( svn_wc_notify_exclude, "exclude" );
170     add( svn_wc_notify_failed_conflict, "failed_conflict" );
171     add( svn_wc_notify_failed_missing, "failed_missing" );
172     add( svn_wc_notify_failed_out_of_date, "failed_out_of_date" );
173     add( svn_wc_notify_failed_no_parent, "failed_no_parent" );
174     add( svn_wc_notify_failed_locked, "failed_locked" );
175     add( svn_wc_notify_failed_forbidden_by_server, "failed_forbidden_by_server" );
176     add( svn_wc_notify_skip_conflicted, "skip_conflicted" );
177 #endif
178 #if defined( PYSVN_HAS_SVN_1_8 )
179     add( svn_wc_notify_update_broken_lock, "update_broken_lock" );
180     add( svn_wc_notify_failed_obstruction, "failed_obstruction" );
181     add( svn_wc_notify_conflict_resolver_starting, "conflict_resolver_starting" );
182     add( svn_wc_notify_conflict_resolver_done, "conflict_resolver_done" );
183     add( svn_wc_notify_left_local_modifications, "left_local_modifications" );
184     add( svn_wc_notify_foreign_copy_begin, "foreign_copy_begin" );
185     add( svn_wc_notify_move_broken, "move_broken" );
186 #endif
187 #if defined( PYSVN_HAS_SVN_1_9 )
188     add( svn_wc_notify_cleanup_external, "cleanup_external" );
189     add( svn_wc_notify_failed_requires_target, "failed_requires_target" );
190     add( svn_wc_notify_info_external, "info_external" );
191     add( svn_wc_notify_commit_finalizing, "commit_finalizing" );
192 #endif
193 
194 }
195 
EnumString()196 template <> EnumString< svn_wc_status_kind >::EnumString()
197 : m_type_name( "wc_status_kind" )
198 {
199     // does not exist
200     add( svn_wc_status_none, "none" );
201 
202     // is not a versioned thing in this wc
203     add( svn_wc_status_unversioned, "unversioned" );
204 
205     // exists, but uninteresting.
206     add( svn_wc_status_normal, "normal" );
207 
208     // is scheduled for addition
209     add( svn_wc_status_added, "added" );
210 
211     // under v.c., but is missing
212     add( svn_wc_status_missing, "missing" );
213 
214     // scheduled for deletion
215     add( svn_wc_status_deleted, "deleted" );
216 
217     // was deleted and then re-added
218     add( svn_wc_status_replaced, "replaced" );
219 
220     // text or props have been modified
221     add( svn_wc_status_modified, "modified" );
222 
223     // local mods received repos mods
224     add( svn_wc_status_merged, "merged" );
225 
226     // local mods received conflicting repos mods
227     add( svn_wc_status_conflicted, "conflicted" );
228 
229     // a resource marked as ignored
230     add( svn_wc_status_ignored, "ignored" );
231 
232     // an unversioned resource is in the way of the versioned resource
233     add( svn_wc_status_obstructed, "obstructed" );
234 
235     // an unversioned path populated by an svn:external property
236     add( svn_wc_status_external, "external" );
237 
238     // a directory doesn't contain a complete entries list
239     add( svn_wc_status_incomplete, "incomplete" );
240 }
241 
EnumString()242 template <> EnumString< svn_wc_merge_outcome_t >::EnumString()
243 : m_type_name( "wc_merge_outcome" )
244 {
245     // The working copy is (or would be) unchanged.
246     // The changes to be merged were already present in the working copy
247     add( svn_wc_merge_unchanged, "unchanged" );
248 
249     // The working copy has been (or would be) changed.
250     add( svn_wc_merge_merged, "merged" );
251 
252     // The working copy has been (or would be) changed,
253     // but there was (or would be) a conflict
254     add( svn_wc_merge_conflict, "conflict" );
255 
256     // No merge was performed, probably because the target
257     // file was either absent or not under version control.
258     add( svn_wc_merge_no_merge, "no_merge" );
259 }
260 
EnumString()261 template <> EnumString< svn_wc_notify_state_t >::EnumString()
262 : m_type_name( "wc_notify_state" )
263 {
264     add( svn_wc_notify_state_inapplicable, "inapplicable" );
265 
266     // Notifier doesn't know or isn't saying.
267     add( svn_wc_notify_state_unknown, "unknown" );
268 
269     // The state did not change.
270     add( svn_wc_notify_state_unchanged, "unchanged" );
271 
272     // The item wasn't present.
273     add( svn_wc_notify_state_missing, "missing" );
274 
275     // An unversioned item obstructed work.
276     add( svn_wc_notify_state_obstructed, "obstructed" );
277 
278     // Pristine state was modified.
279     add( svn_wc_notify_state_changed, "changed" );
280 
281     // Modified state had mods merged in.
282     add( svn_wc_notify_state_merged, "merged" );
283 
284     // Modified state got conflicting mods.
285     add( svn_wc_notify_state_conflicted, "conflicted" );
286 
287     // QQQ: When was this symbol added?
288     // The source to copy the file from is missing.
289     add( svn_wc_notify_state_source_missing, "source_missing" );
290 }
291 
EnumString()292 template <> EnumString< svn_wc_schedule_t >::EnumString()
293 : m_type_name( "wc_schedule" )
294 {
295     // Nothing special here
296     add( svn_wc_schedule_normal, "normal" );
297 
298     // Slated for addition
299     add( svn_wc_schedule_add, "add" );
300 
301     // Slated for deletion
302     add( svn_wc_schedule_delete, "delete" );
303 
304     // Slated for replacement (delete + add)
305     add( svn_wc_schedule_replace, "replace" );
306 }
307 
EnumString()308 template <> EnumString< svn_node_kind_t >::EnumString()
309 : m_type_name( "node_kind" )
310 {
311     // absent
312     add( svn_node_none, "none" );
313 
314     // regular file
315     add( svn_node_file, "file" );
316 
317     // directory
318     add( svn_node_dir, "dir" );
319 
320     // something's here, but we don't know what
321     add( svn_node_unknown, "unknown" );
322 
323 #if defined( PYSVN_HAS_SVN_1_8 )
324    // symbolic link
325    // @note This value is not currently used by the public API.
326   add( svn_node_symlink, "symlink" );
327 #endif
328 }
329 
330 #if defined( PYSVN_HAS_DIFF_FILE_IGNORE_SPACE )
EnumString()331 template <> EnumString< svn_diff_file_ignore_space_t >::EnumString()
332 : m_type_name( "diff_file_ignore_space" )
333 {
334     add( svn_diff_file_ignore_space_none, "none" );
335     add( svn_diff_file_ignore_space_change, "change" );
336     add( svn_diff_file_ignore_space_all, "all" );
337 }
338 #endif
339 
340 #if defined( PYSVN_HAS_CLIENT_DIFF_SUMMARIZE )
EnumString()341 template <> EnumString< svn_client_diff_summarize_kind_t >::EnumString()
342 : m_type_name( "diff_summarize" )
343 {
344     /** An item with no text modifications */
345     add( svn_client_diff_summarize_kind_normal, "normal" );
346 
347     /** An added item */
348     add( svn_client_diff_summarize_kind_added, "added" );
349 
350     /** An item with text modifications */
351     add( svn_client_diff_summarize_kind_modified, "modified" );
352 
353     /** A deleted item */
354     add( svn_client_diff_summarize_kind_deleted, "delete" );
355 }
356 #endif
357 
358 #if defined( PYSVN_HAS_SVN_WC_CONFLICT_CHOICE_T )
EnumString()359 template <> EnumString< svn_wc_conflict_action_t >::EnumString()
360 : m_type_name( "conflict_action" )
361 {
362     add( svn_wc_conflict_action_edit, "edit" );
363     add( svn_wc_conflict_action_add, "add" );
364     add( svn_wc_conflict_action_delete, "delete" );
365 }
366 
EnumString()367 template <> EnumString< svn_wc_conflict_kind_t >::EnumString()
368 : m_type_name( "conflict_kind" )
369 {
370     add( svn_wc_conflict_kind_text, "text" );
371     add( svn_wc_conflict_kind_property, "property" );
372 }
373 
EnumString()374 template <> EnumString< svn_wc_conflict_reason_t >::EnumString()
375 : m_type_name( "conflict_reason" )
376 {
377     // local edits are already present
378     add( svn_wc_conflict_reason_edited, "edited" );
379     // another object is in the way
380     add( svn_wc_conflict_reason_obstructed, "obstructed" );
381     // object is already schedule-delete
382     add( svn_wc_conflict_reason_deleted, "deleted" );
383     // object is unknown or missing
384     add( svn_wc_conflict_reason_missing, "missing" );
385     // object is unversioned
386     add( svn_wc_conflict_reason_unversioned, "unversioned" );
387 #if defined( PYSVN_HAS_SVN_1_8 )
388     add( svn_wc_conflict_reason_moved_away, "moved_away" );
389     add( svn_wc_conflict_reason_moved_here, "moved_here" );
390 #endif
391 }
392 
393 #endif
394 
395 #if defined( PYSVN_HAS_SVN__DEPTH_PARAMETER )
EnumString()396 template <> EnumString< svn_depth_t >::EnumString()
397 : m_type_name( "depth" )
398 {
399     add( svn_depth_unknown, "unknown" );
400     add( svn_depth_exclude, "exclude" );
401     add( svn_depth_empty, "empty" );
402     add( svn_depth_files, "files" );
403     add( svn_depth_immediates, "immediates" );
404     add( svn_depth_infinity, "infinity" );
405 }
406 #endif
407 
408 
409 #if defined( PYSVN_HAS_SVN_WC_CONFLICT_CHOICE_T )
EnumString()410 template <> EnumString< svn_wc_conflict_choice_t >::EnumString()
411 : m_type_name( "wc_conflict_choice" )
412 {
413     // Don't resolve the conflict now.  Let libsvn_wc mark the path
414     // 'conflicted', so user can run 'svn resolved' later.
415     add( svn_wc_conflict_choose_postpone, "postpone" );
416 
417     // If their were files to choose from, select one as a way of
418     // resolving the conflict here and now.  libsvn_wc will then do the
419     // work of "installing" the chosen file.
420     // user chooses the original version
421     add( svn_wc_conflict_choose_base, "base" );
422     // user chooses incoming version
423     add( svn_wc_conflict_choose_theirs_full, "theirs_full" );
424     // user chooses own version
425     add( svn_wc_conflict_choose_mine_full, "mine_full" );
426     // user chooses incoming (for conflicted hunks)
427     add( svn_wc_conflict_choose_theirs_conflict, "theirs_conflict" );
428     // user chooses own (for conflicted hunks)
429     add( svn_wc_conflict_choose_mine_conflict, "mine_conflict" );
430     // user chooses the merged version
431     add( svn_wc_conflict_choose_merged, "merged" );
432 #if defined( PYSVN_HAS_SVN_1_8 )
433     //undecided
434     add( svn_wc_conflict_choose_unspecified, "unspecified" );
435 #endif
436 }
437 #endif
438 
439 #if defined( PYSVN_HAS_SVN_WC_OPERATION_T )
EnumString()440 template <> EnumString< svn_wc_operation_t >::EnumString()
441 : m_type_name( "wc_operation" )
442 {
443     add( svn_wc_operation_none, "none" );
444     add( svn_wc_operation_update, "update" );
445     add( svn_wc_operation_switch, "switch" );
446     add( svn_wc_operation_merge, "merge" );
447 }
448 #endif
449 
450 //--------------------------------------------------------------------------------
init_type(void)451 template <> void pysvn_enum< svn_opt_revision_kind >::init_type(void)
452 {
453     behaviors().name( "opt_revision_kind" );
454     behaviors().doc( "opt_revision_kind enumeration" );
455     behaviors().supportGetattr();
456 }
457 
init_type(void)458 template <> void pysvn_enum_value< svn_opt_revision_kind >::init_type(void)
459 {
460     behaviors().name( "opt_revision_kind" );
461     behaviors().doc( "opt_revision_kind value" );
462     behaviors().supportCompare();
463     behaviors().supportRichCompare();
464     behaviors().supportRepr();
465     behaviors().supportStr();
466     behaviors().supportHash();
467 }
468 
init_type(void)469 template <> void pysvn_enum< svn_wc_notify_action_t >::init_type(void)
470 {
471     behaviors().name( "wc_notify_action" );
472     behaviors().doc( "wc_notify_action enumeration" );
473     behaviors().supportGetattr();
474 }
475 
init_type(void)476 template <> void pysvn_enum_value< svn_wc_notify_action_t >::init_type(void)
477 {
478     behaviors().name( "wc_notify_action" );
479     behaviors().doc( "wc_notify_action value" );
480     behaviors().supportCompare();
481     behaviors().supportRichCompare();
482     behaviors().supportRepr();
483     behaviors().supportStr();
484     behaviors().supportHash();
485 }
486 
init_type(void)487 template <> void pysvn_enum< svn_wc_status_kind >::init_type(void)
488 {
489     behaviors().name( "wc_status_kind" );
490     behaviors().doc( "wc_status_kind enumeration" );
491     behaviors().supportGetattr();
492 }
493 
init_type(void)494 template <> void pysvn_enum_value< svn_wc_status_kind >::init_type(void)
495 {
496     behaviors().name( "wc_status_kind" );
497     behaviors().doc( "wc_status_kind value" );
498     behaviors().supportCompare();
499     behaviors().supportRichCompare();
500     behaviors().supportRepr();
501     behaviors().supportStr();
502     behaviors().supportHash();
503 }
504 
init_type(void)505 template <> void pysvn_enum< svn_wc_schedule_t >::init_type(void)
506 {
507     behaviors().name( "wc_schedule" );
508     behaviors().doc( "wc_schedule enumeration" );
509     behaviors().supportGetattr();
510 }
511 
init_type(void)512 template <> void pysvn_enum_value< svn_wc_schedule_t >::init_type(void)
513 {
514     behaviors().name( "wc_schedule" );
515     behaviors().doc( "wc_schedule value" );
516     behaviors().supportCompare();
517     behaviors().supportRichCompare();
518     behaviors().supportRepr();
519     behaviors().supportStr();
520     behaviors().supportHash();
521 }
522 
init_type(void)523 template <> void pysvn_enum< svn_wc_merge_outcome_t >::init_type(void)
524 {
525     behaviors().name( "wc_merge_outcome" );
526     behaviors().doc( "wc_merge_outcome enumeration" );
527     behaviors().supportGetattr();
528 }
529 
init_type(void)530 template <> void pysvn_enum_value< svn_wc_merge_outcome_t >::init_type(void)
531 {
532     behaviors().name( "wc_merge_outcome" );
533     behaviors().doc( "wc_merge_outcome value" );
534     behaviors().supportCompare();
535     behaviors().supportRichCompare();
536     behaviors().supportRepr();
537     behaviors().supportStr();
538     behaviors().supportHash();
539 }
540 
init_type(void)541 template <> void pysvn_enum< svn_wc_notify_state_t >::init_type(void)
542 {
543     behaviors().name( "wc_notify_state" );
544     behaviors().doc( "wc_notify_state enumeration" );
545     behaviors().supportGetattr();
546 }
547 
init_type(void)548 template <> void pysvn_enum_value< svn_wc_notify_state_t >::init_type(void)
549 {
550     behaviors().name( "wc_notify_state" );
551     behaviors().doc( "wc_notify_state value" );
552     behaviors().supportCompare();
553     behaviors().supportRichCompare();
554     behaviors().supportRepr();
555     behaviors().supportStr();
556     behaviors().supportHash();
557 }
558 
init_type(void)559 template <> void pysvn_enum< svn_node_kind_t >::init_type(void)
560 {
561     behaviors().name( "node_kind" );
562     behaviors().doc( "node_kind enumeration" );
563     behaviors().supportGetattr();
564 }
565 
init_type(void)566 template <> void pysvn_enum_value< svn_node_kind_t >::init_type(void)
567 {
568     behaviors().name( "node_kind" );
569     behaviors().doc( "node_kind value" );
570     behaviors().supportCompare();
571     behaviors().supportRichCompare();
572     behaviors().supportRepr();
573     behaviors().supportStr();
574     behaviors().supportHash();
575 }
576 
577 #if defined( PYSVN_HAS_DIFF_FILE_IGNORE_SPACE )
init_type(void)578 template <> void pysvn_enum< svn_diff_file_ignore_space_t >::init_type(void)
579 {
580     behaviors().name( "diff_file_ignore_space" );
581     behaviors().doc( "diff_file_ignore_space enumeration" );
582     behaviors().supportGetattr();
583 }
584 
init_type(void)585 template <> void pysvn_enum_value< svn_diff_file_ignore_space_t >::init_type(void)
586 {
587     behaviors().name( "diff_file_ignore_space" );
588     behaviors().doc( "diff_file_ignore_space value" );
589     behaviors().supportCompare();
590     behaviors().supportRichCompare();
591     behaviors().supportRepr();
592     behaviors().supportStr();
593     behaviors().supportHash();
594 }
595 #endif
596 
597 #if defined( PYSVN_HAS_CLIENT_DIFF_SUMMARIZE )
init_type(void)598 template <> void pysvn_enum< svn_client_diff_summarize_kind_t >::init_type(void)
599 {
600     behaviors().name( "client_diff_summarize_kind" );
601     behaviors().doc( "client_diff_summarize_kind enumeration" );
602     behaviors().supportGetattr();
603 }
604 
init_type(void)605 template <> void pysvn_enum_value< svn_client_diff_summarize_kind_t >::init_type(void)
606 {
607     behaviors().name( "client_diff_summarize_kind" );
608     behaviors().doc( "client_diff_summarize_kind value" );
609     behaviors().supportCompare();
610     behaviors().supportRichCompare();
611     behaviors().supportRepr();
612     behaviors().supportStr();
613     behaviors().supportHash();
614 }
615 #endif
616 
617 #if defined( PYSVN_HAS_SVN__DEPTH_PARAMETER )
init_type(void)618 template <> void pysvn_enum< svn_depth_t >::init_type(void)
619 {
620     behaviors().name( "depth" );
621     behaviors().doc( "depth enumeration" );
622     behaviors().supportGetattr();
623 }
624 
init_type(void)625 template <> void pysvn_enum_value< svn_depth_t >::init_type(void)
626 {
627     behaviors().name( "depth" );
628     behaviors().doc( "depth value" );
629     behaviors().supportCompare();
630     behaviors().supportRichCompare();
631     behaviors().supportRepr();
632     behaviors().supportStr();
633     behaviors().supportHash();
634 }
635 #endif
636 
637 #if defined( PYSVN_HAS_SVN_WC_CONFLICT_CHOICE_T )
init_type(void)638 template <> void pysvn_enum< svn_wc_conflict_choice_t >::init_type(void)
639 {
640     behaviors().name( "wc_conflict_choice" );
641     behaviors().doc( "wc_conflict_choice enumeration" );
642     behaviors().supportGetattr();
643 }
644 
init_type(void)645 template <> void pysvn_enum_value< svn_wc_conflict_choice_t >::init_type(void)
646 {
647     behaviors().name( "wc_conflict_choice" );
648     behaviors().doc( "wc_conflict_choice value" );
649     behaviors().supportCompare();
650     behaviors().supportRichCompare();
651     behaviors().supportRepr();
652     behaviors().supportStr();
653     behaviors().supportHash();
654 }
655 
656 
init_type(void)657 template <> void pysvn_enum< svn_wc_conflict_action_t >::init_type(void)
658 {
659     behaviors().name( "wc_conflict_action" );
660     behaviors().doc( "wc_conflict_action enumeration" );
661     behaviors().supportGetattr();
662 }
663 
init_type(void)664 template <> void pysvn_enum_value< svn_wc_conflict_action_t >::init_type(void)
665 {
666     behaviors().name( "wc_conflict_action" );
667     behaviors().doc( "wc_conflict_action value" );
668     behaviors().supportCompare();
669     behaviors().supportRichCompare();
670     behaviors().supportRepr();
671     behaviors().supportStr();
672     behaviors().supportHash();
673 }
674 
675 
init_type(void)676 template <> void pysvn_enum< svn_wc_conflict_kind_t >::init_type(void)
677 {
678     behaviors().name( "wc_conflict_kind" );
679     behaviors().doc( "wc_conflict_kind enumeration" );
680     behaviors().supportGetattr();
681 }
682 
init_type(void)683 template <> void pysvn_enum_value< svn_wc_conflict_kind_t >::init_type(void)
684 {
685     behaviors().name( "wc_conflict_kind" );
686     behaviors().doc( "wc_conflict_kind value" );
687     behaviors().supportCompare();
688     behaviors().supportRichCompare();
689     behaviors().supportRepr();
690     behaviors().supportStr();
691     behaviors().supportHash();
692 }
693 
init_type(void)694 template <> void pysvn_enum< svn_wc_conflict_reason_t >::init_type(void)
695 {
696     behaviors().name( "wc_conflict_reason" );
697     behaviors().doc( "wc_conflict_reason enumeration" );
698     behaviors().supportGetattr();
699 }
700 
init_type(void)701 template <> void pysvn_enum_value< svn_wc_conflict_reason_t >::init_type(void)
702 {
703     behaviors().name( "wc_conflict_reason" );
704     behaviors().doc( "wc_conflict_reason value" );
705     behaviors().supportCompare();
706     behaviors().supportRichCompare();
707     behaviors().supportRepr();
708     behaviors().supportStr();
709     behaviors().supportHash();
710 }
711 #endif
712 
713 #if defined( PYSVN_HAS_SVN_WC_OPERATION_T )
init_type(void)714 template <> void pysvn_enum< svn_wc_operation_t >::init_type(void)
715 {
716     behaviors().name( "wc_operation" );
717     behaviors().doc( "wc_operation enumeration" );
718     behaviors().supportGetattr();
719 }
720 
init_type(void)721 template <> void pysvn_enum_value< svn_wc_operation_t >::init_type(void)
722 {
723     behaviors().name( "wc_operation" );
724     behaviors().doc( "wc_operation value" );
725     behaviors().supportCompare();
726     behaviors().supportRichCompare();
727     behaviors().supportRepr();
728     behaviors().supportStr();
729     behaviors().supportHash();
730 }
731 #endif
732