add a type for the key phase and use it for header parsing and writing

This commit is contained in:
Marten Seemann
2019-05-30 18:08:16 +08:00
parent 4de3a09ec4
commit 14a31d49a0
5 changed files with 47 additions and 9 deletions

View File

@@ -34,6 +34,27 @@ func (t PacketType) String() string {
}
}
// KeyPhase is the key phase
type KeyPhase bool
const (
// KeyPhaseZero is key phase 0
KeyPhaseZero KeyPhase = false
// KeyPhaseOne is key phase 1
KeyPhaseOne KeyPhase = true
)
func (p KeyPhase) String() string {
if p == KeyPhaseZero {
return "0"
}
return "1"
}
func (p KeyPhase) Next() KeyPhase {
return !p
}
// A ByteCount in QUIC
type ByteCount uint64

View File

@@ -15,4 +15,16 @@ var _ = Describe("Protocol", func() {
Expect(PacketType(10).String()).To(Equal("unknown packet type: 10"))
})
})
Context("Key Phases", func() {
It("has the correct string representation", func() {
Expect(KeyPhaseZero.String()).To(Equal("0"))
Expect(KeyPhaseOne.String()).To(Equal("1"))
})
It("returns the next key phase", func() {
Expect(KeyPhaseZero.Next()).To(Equal(KeyPhaseOne))
Expect(KeyPhaseOne.Next()).To(Equal(KeyPhaseZero))
})
})
})