@@ -130,6 +130,11 @@ pub const Token = struct {
130130 return self .alloc .dupe (u8 , self .msg );
131131 }
132132
133+ pub fn getPartCount (self : * Self ) usize {
134+ const count = std .mem .count (u8 , self .raw , "." );
135+ return count + 1 ;
136+ }
137+
133138 fn getRawNoSignature (self : * Self ) ! []const u8 {
134139 const count = std .mem .count (u8 , self .raw , "." );
135140 if (count <= 1 ) {
@@ -270,6 +275,9 @@ test "Token" {
270275 defer alloc .free (signature2 );
271276 try testing .expectEqual (0 , signature2 .len );
272277
278+ const partCount = token2 .getPartCount ();
279+ try testing .expectEqual (2 , partCount );
280+
273281 // ====================
274282
275283 var token3 = Token .init (alloc );
@@ -299,6 +307,9 @@ test "Token" {
299307 defer alloc .free (token5 );
300308 try testing .expectEqualStrings (check1 , token5 );
301309
310+ const partCount2 = token3 .getPartCount ();
311+ try testing .expectEqual (3 , partCount2 );
312+
302313 // ====================
303314
304315 const check3 = "eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9" ;
@@ -315,6 +326,9 @@ test "Token" {
315326 const sig6 = try token6 .getMsg ();
316327 defer alloc .free (sig6 );
317328 try testing .expectEqualStrings (check3 , sig6 );
329+
330+ const partCount6 = token6 .getPartCount ();
331+ try testing .expectEqual (1 , partCount6 );
318332}
319333
320334test "Token 2" {
0 commit comments