@@ -28,70 +28,57 @@ func (c *Comment) SetText(text string) error {
2828 return getError ()
2929}
3030
31- func (c * Comment ) InsertBeforeAsText (content string ) error {
31+ type commentAlter int
32+
33+ const (
34+ commentInsertBefore commentAlter = iota
35+ commentInsertAfter
36+ commentReplace
37+ )
38+
39+ func (c * Comment ) alter (content string , alter commentAlter , isHtml bool ) error {
3240 contentC := C .CString (content )
3341 defer C .free (unsafe .Pointer (contentC ))
3442 contentLen := len (content )
35- errCode := C .lol_html_comment_before ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), false )
43+ var errCode C.int
44+ switch alter {
45+ case commentInsertBefore :
46+ errCode = C .lol_html_comment_before ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), C .bool (isHtml ))
47+ case commentInsertAfter :
48+ errCode = C .lol_html_comment_after ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), C .bool (isHtml ))
49+ case commentReplace :
50+ errCode = C .lol_html_comment_replace ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), C .bool (isHtml ))
51+ default :
52+ panic ("not implemented" )
53+ }
3654 if errCode == 0 {
3755 return nil
3856 }
3957 return getError ()
4058}
4159
60+ func (c * Comment ) InsertBeforeAsText (content string ) error {
61+ return c .alter (content , commentInsertAfter , false )
62+ }
63+
4264func (c * Comment ) InsertBeforeAsHtml (content string ) error {
43- contentC := C .CString (content )
44- defer C .free (unsafe .Pointer (contentC ))
45- contentLen := len (content )
46- errCode := C .lol_html_comment_before ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), true )
47- if errCode == 0 {
48- return nil
49- }
50- return getError ()
65+ return c .alter (content , commentInsertBefore , true )
5166}
5267
5368func (c * Comment ) InsertAfterAsText (content string ) error {
54- contentC := C .CString (content )
55- defer C .free (unsafe .Pointer (contentC ))
56- contentLen := len (content )
57- errCode := C .lol_html_comment_after ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), false )
58- if errCode == 0 {
59- return nil
60- }
61- return getError ()
69+ return c .alter (content , commentInsertAfter , false )
6270}
6371
6472func (c * Comment ) InsertAfterAsHtml (content string ) error {
65- contentC := C .CString (content )
66- defer C .free (unsafe .Pointer (contentC ))
67- contentLen := len (content )
68- errCode := C .lol_html_comment_after ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), true )
69- if errCode == 0 {
70- return nil
71- }
72- return getError ()
73+ return c .alter (content , commentInsertAfter , true )
7374}
7475
7576func (c * Comment ) ReplaceAsText (content string ) error {
76- contentC := C .CString (content )
77- defer C .free (unsafe .Pointer (contentC ))
78- contentLen := len (content )
79- errCode := C .lol_html_comment_replace ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), false )
80- if errCode == 0 {
81- return nil
82- }
83- return getError ()
77+ return c .alter (content , commentReplace , false )
8478}
8579
8680func (c * Comment ) ReplaceAsHtml (content string ) error {
87- contentC := C .CString (content )
88- defer C .free (unsafe .Pointer (contentC ))
89- contentLen := len (content )
90- errCode := C .lol_html_comment_replace ((* C .lol_html_comment_t )(c ), contentC , C .size_t (contentLen ), true )
91- if errCode == 0 {
92- return nil
93- }
94- return getError ()
81+ return c .alter (content , commentReplace , true )
9582}
9683
9784func (c * Comment ) Remove () {
0 commit comments