@@ -93,63 +93,132 @@ func (library *Library) String() string {
9393 return library .Name + "@" + library .Version .String ()
9494}
9595
96- func (library * Library ) MarshalBinary () []byte {
96+ func (library * Library ) MarshalBinary () ( []byte , error ) {
9797 buffer := bytes .NewBuffer (make ([]byte , 0 , 4096 ))
98- writeString := func (in string ) {
98+ writeString := func (in string ) error {
9999 inBytes := []byte (in )
100- binary .Write (buffer , binary .NativeEndian , uint16 (len (inBytes )))
101- buffer .Write (inBytes )
100+ if err := binary .Write (buffer , binary .NativeEndian , uint16 (len (inBytes ))); err != nil {
101+ return err
102+ }
103+ _ , err := buffer .Write (inBytes )
104+ return err
102105 }
103- writeStringArray := func (in []string ) {
104- binary .Write (buffer , binary .NativeEndian , uint16 (len (in )))
106+ writeStringArray := func (in []string ) error {
107+ if err := binary .Write (buffer , binary .NativeEndian , uint16 (len (in ))); err != nil {
108+ return err
109+ }
105110 for _ , i := range in {
106- writeString (i )
111+ if err := writeString (i ); err != nil {
112+ return err
113+ }
107114 }
115+ return nil
108116 }
109- writeMap := func (in map [string ]bool ) {
110- binary .Write (buffer , binary .NativeEndian , uint16 (len (in )))
117+ writeMap := func (in map [string ]bool ) error {
118+ if err := binary .Write (buffer , binary .NativeEndian , uint16 (len (in ))); err != nil {
119+ return err
120+ }
111121 for k , v := range in {
112- writeString (k )
113- binary .Write (buffer , binary .NativeEndian , v )
122+ if err := writeString (k ); err != nil {
123+ return err
124+ }
125+ if err := binary .Write (buffer , binary .NativeEndian , v ); err != nil {
126+ return err
127+ }
114128 }
129+ return nil
115130 }
116- writePath := func (in * paths.Path ) {
131+ writePath := func (in * paths.Path ) error {
117132 if in == nil {
118- writeString ("" )
133+ return writeString ("" )
119134 } else {
120- writeString (in .String ())
135+ return writeString (in .String ())
121136 }
122137 }
123- writeString (library .Name )
124- writeString (library .Author )
125- writeString (library .Maintainer )
126- writeString (library .Sentence )
127- writeString (library .Paragraph )
128- writeString (library .Website )
129- writeString (library .Category )
130- writeStringArray (library .Architectures )
131- writeStringArray (library .Types )
132- writePath (library .InstallDir )
133- writeString (library .DirName )
134- writePath (library .SourceDir )
135- writePath (library .UtilityDir )
136- binary .Write (buffer , binary .NativeEndian , int32 (library .Location ))
138+ if err := writeString (library .Name ); err != nil {
139+ return nil , err
140+ }
141+ if err := writeString (library .Author ); err != nil {
142+ return nil , err
143+ }
144+ if err := writeString (library .Maintainer ); err != nil {
145+ return nil , err
146+ }
147+ if err := writeString (library .Sentence ); err != nil {
148+ return nil , err
149+ }
150+ if err := writeString (library .Paragraph ); err != nil {
151+ return nil , err
152+ }
153+ if err := writeString (library .Website ); err != nil {
154+ return nil , err
155+ }
156+ if err := writeString (library .Category ); err != nil {
157+ return nil , err
158+ }
159+ if err := writeStringArray (library .Architectures ); err != nil {
160+ return nil , err
161+ }
162+ if err := writeStringArray (library .Types ); err != nil {
163+ return nil , err
164+ }
165+ if err := writePath (library .InstallDir ); err != nil {
166+ return nil , err
167+ }
168+ if err := writeString (library .DirName ); err != nil {
169+ return nil , err
170+ }
171+ if err := writePath (library .SourceDir ); err != nil {
172+ return nil , err
173+ }
174+ if err := writePath (library .UtilityDir ); err != nil {
175+ return nil , err
176+ }
177+ if err := binary .Write (buffer , binary .NativeEndian , int32 (library .Location )); err != nil {
178+ return nil , err
179+ }
137180 // library.ContainerPlatform *cores.PlatformRelease `json:""`
138- binary .Write (buffer , binary .NativeEndian , int32 (library .Layout ))
139- binary .Write (buffer , binary .NativeEndian , library .DotALinkage )
140- binary .Write (buffer , binary .NativeEndian , library .Precompiled )
141- binary .Write (buffer , binary .NativeEndian , library .PrecompiledWithSources )
142- writeString (library .LDflags )
143- binary .Write (buffer , binary .NativeEndian , library .IsLegacy )
144- binary .Write (buffer , binary .NativeEndian , library .InDevelopment )
145- writeString (library .Version .String ())
146- writeString (library .License )
181+ if err := binary .Write (buffer , binary .NativeEndian , int32 (library .Layout )); err != nil {
182+ return nil , err
183+ }
184+ if err := binary .Write (buffer , binary .NativeEndian , library .DotALinkage ); err != nil {
185+ return nil , err
186+ }
187+ if err := binary .Write (buffer , binary .NativeEndian , library .Precompiled ); err != nil {
188+ return nil , err
189+ }
190+ if err := binary .Write (buffer , binary .NativeEndian , library .PrecompiledWithSources ); err != nil {
191+ return nil , err
192+ }
193+ if err := writeString (library .LDflags ); err != nil {
194+ return nil , err
195+ }
196+ if err := binary .Write (buffer , binary .NativeEndian , library .IsLegacy ); err != nil {
197+ return nil , err
198+ }
199+ if err := binary .Write (buffer , binary .NativeEndian , library .InDevelopment ); err != nil {
200+ return nil , err
201+ }
202+ if err := writeString (library .Version .String ()); err != nil {
203+ return nil , err
204+ }
205+ if err := writeString (library .License ); err != nil {
206+ return nil , err
207+ }
147208 //writeStringArray(library.Properties.AsSlice())
148- writeStringArray (library .Examples .AsStrings ())
149- writeStringArray (library .declaredHeaders )
150- writeStringArray (library .sourceHeaders )
151- writeMap (library .CompatibleWith )
152- return buffer .Bytes ()
209+ if err := writeStringArray (library .Examples .AsStrings ()); err != nil {
210+ return nil , err
211+ }
212+ if err := writeStringArray (library .declaredHeaders ); err != nil {
213+ return nil , err
214+ }
215+ if err := writeStringArray (library .sourceHeaders ); err != nil {
216+ return nil , err
217+ }
218+ if err := writeMap (library .CompatibleWith ); err != nil {
219+ return nil , err
220+ }
221+ return buffer .Bytes (), nil
153222}
154223
155224func (library * Library ) UnmarshalBinary (in io.Reader ) error {
0 commit comments