66 "errors"
77 "math/bits"
88
9- partialmessages "github.com/libp2p/go-libp2p-pubsub/partialmessages"
9+ "github.com/libp2p/go-libp2p-pubsub/partialmessages"
1010)
1111
1212const partLen = 1024
@@ -17,8 +17,8 @@ type PartialMessage struct {
1717}
1818
1919// PartsMetadata implements partialmessages.PartialMessage.
20- func (p * PartialMessage ) PartsMetadata () [] byte {
21- out := [] byte {0 }
20+ func (p * PartialMessage ) PartsMetadata () partialmessages. PartsMetadata {
21+ out := partialmessages. PartsMetadata {0 }
2222 for i := range p .parts {
2323 if len (p .parts [i ]) > 0 {
2424 out [0 ] |= 1 << i
@@ -88,35 +88,29 @@ func (p *PartialMessage) Extend(data []byte) error {
8888}
8989
9090// PartialMessageBytes implements partialmessages.PartialMessage.
91- func (p * PartialMessage ) PartialMessageBytes (metadata [] byte ) ([] byte , []byte , error ) {
91+ func (p * PartialMessage ) PartialMessageBytes (metadata partialmessages. PartsMetadata ) ([]byte , error ) {
9292 if len (metadata ) != 1 {
93- return nil , nil , errors .New ("invalid metadata length" )
93+ return nil , errors .New ("invalid metadata length" )
9494 }
9595
9696 out := make ([]byte , 0 , 1 + 1024 * (bits .OnesCount8 (metadata [0 ]))+ len (p .groupID ))
9797 out = append (out , 0 ) // This byte will contain the parts we are including in the message
98- remaining := []byte {metadata [0 ]}
99- for i := range p .parts {
98+ for i , a := range p .parts {
10099 if metadata [0 ]& (1 << i ) != 0 {
101100 // They already have this part
102101 continue
103102 }
104- if len (p . parts [ i ] ) == 0 {
103+ if len (a ) == 0 {
105104 continue
106105 }
107- remaining [0 ] ^= (1 << i )
108106 out [0 ] |= 1 << i
109- out = append (out , p . parts [ i ] ... )
107+ out = append (out , a ... )
110108 }
111109 if out [0 ] == 0 {
112- return nil , metadata , nil
110+ return nil , nil
113111 }
114112 out = append (out , p .groupID [:]... )
115- if remaining [0 ] == 0 {
116- remaining = nil
117- }
118-
119- return out , remaining , nil
113+ return out , nil
120114}
121115
122- var _ partialmessages.PartialMessage = (* PartialMessage )(nil )
116+ var _ partialmessages.Message = (* PartialMessage )(nil )
0 commit comments