From 97ffd10cae2bc1f0c62ce14015e240930fda43f6 Mon Sep 17 00:00:00 2001 From: Liam Date: Mon, 19 Nov 2018 18:53:17 +0000 Subject: [PATCH] Removes integer backing from ByteLength enum. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Motivation: To simplify the enum from the calling perspective. Modifications: Removed integer backing. Removed a string addition from a test that wasn’t actually adding anything. Result: The integer for the enum can not be seen publicly. --- .../LengthFieldBasedFrameDecoder.swift | 29 +++++++++++++++---- .../LengthFieldBasedFrameDecoderTest.swift | 1 - 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Sources/NIOExtras/LengthFieldBasedFrameDecoder.swift b/Sources/NIOExtras/LengthFieldBasedFrameDecoder.swift index a4b1ec7..57bb429 100644 --- a/Sources/NIOExtras/LengthFieldBasedFrameDecoder.swift +++ b/Sources/NIOExtras/LengthFieldBasedFrameDecoder.swift @@ -18,11 +18,28 @@ import NIO /// An enumeration to describe the length of a piece of data in bytes. /// It is contained to lengths that can be converted to integer types. /// -public enum ByteLength: Int { - case one = 1 - case two = 2 - case four = 4 - case eight = 8 +public enum ByteLength { + case one + case two + case four + case eight +} + +extension ByteLength { + + fileprivate var length: Int { + + switch self { + case .one: + return 1 + case .two: + return 2 + case .four: + return 4 + case .eight: + return 8 + } + } } /// @@ -67,7 +84,7 @@ public final class LengthFieldBasedFrameDecoder: ByteToMessageDecoder { public func decode(ctx: ChannelHandlerContext, buffer: inout ByteBuffer) throws -> DecodingState { - guard let lengthFieldSlice = buffer.readSlice(length: self.lengthFieldLength.rawValue) else { + guard let lengthFieldSlice = buffer.readSlice(length: self.lengthFieldLength.length) else { return .needMoreData } diff --git a/Tests/NIOExtrasTests/LengthFieldBasedFrameDecoderTest.swift b/Tests/NIOExtrasTests/LengthFieldBasedFrameDecoderTest.swift index 3ff175e..35f3e57 100644 --- a/Tests/NIOExtrasTests/LengthFieldBasedFrameDecoderTest.swift +++ b/Tests/NIOExtrasTests/LengthFieldBasedFrameDecoderTest.swift @@ -203,7 +203,6 @@ class LengthFieldBasedFrameDecoderTest: XCTestCase { try? self.channel.pipeline.add(handler: self.decoderUnderTest).wait() var buffer = self.channel.allocator.buffer(capacity: 1) - buffer.write(string: "") XCTAssertFalse(try self.channel.writeInbound(buffer)) XCTAssertFalse(try self.channel.finish()) }