@@ -372,6 +372,80 @@ impl<R: TreeRoot<RaTypes>> BreakExprNode<R> {
372
372
373
373
impl < ' a > BreakExpr < ' a > { }
374
374
375
+ // Byte
376
+ #[ derive( Debug , Clone , Copy , ) ]
377
+ pub struct ByteNode < R : TreeRoot < RaTypes > = OwnedRoot > {
378
+ pub ( crate ) syntax : SyntaxNode < R > ,
379
+ }
380
+ pub type Byte < ' a > = ByteNode < RefRoot < ' a > > ;
381
+
382
+ impl < R1 : TreeRoot < RaTypes > , R2 : TreeRoot < RaTypes > > PartialEq < ByteNode < R1 > > for ByteNode < R2 > {
383
+ fn eq ( & self , other : & ByteNode < R1 > ) -> bool { self . syntax == other. syntax }
384
+ }
385
+ impl < R : TreeRoot < RaTypes > > Eq for ByteNode < R > { }
386
+ impl < R : TreeRoot < RaTypes > > Hash for ByteNode < R > {
387
+ fn hash < H : Hasher > ( & self , state : & mut H ) { self . syntax . hash ( state) }
388
+ }
389
+
390
+ impl < ' a > AstNode < ' a > for Byte < ' a > {
391
+ fn cast ( syntax : SyntaxNodeRef < ' a > ) -> Option < Self > {
392
+ match syntax. kind ( ) {
393
+ BYTE => Some ( Byte { syntax } ) ,
394
+ _ => None ,
395
+ }
396
+ }
397
+ fn syntax ( self ) -> SyntaxNodeRef < ' a > { self . syntax }
398
+ }
399
+
400
+ impl < R : TreeRoot < RaTypes > > ByteNode < R > {
401
+ pub fn borrowed ( & self ) -> Byte {
402
+ ByteNode { syntax : self . syntax . borrowed ( ) }
403
+ }
404
+ pub fn owned ( & self ) -> ByteNode {
405
+ ByteNode { syntax : self . syntax . owned ( ) }
406
+ }
407
+ }
408
+
409
+
410
+ impl < ' a > Byte < ' a > { }
411
+
412
+ // ByteString
413
+ #[ derive( Debug , Clone , Copy , ) ]
414
+ pub struct ByteStringNode < R : TreeRoot < RaTypes > = OwnedRoot > {
415
+ pub ( crate ) syntax : SyntaxNode < R > ,
416
+ }
417
+ pub type ByteString < ' a > = ByteStringNode < RefRoot < ' a > > ;
418
+
419
+ impl < R1 : TreeRoot < RaTypes > , R2 : TreeRoot < RaTypes > > PartialEq < ByteStringNode < R1 > > for ByteStringNode < R2 > {
420
+ fn eq ( & self , other : & ByteStringNode < R1 > ) -> bool { self . syntax == other. syntax }
421
+ }
422
+ impl < R : TreeRoot < RaTypes > > Eq for ByteStringNode < R > { }
423
+ impl < R : TreeRoot < RaTypes > > Hash for ByteStringNode < R > {
424
+ fn hash < H : Hasher > ( & self , state : & mut H ) { self . syntax . hash ( state) }
425
+ }
426
+
427
+ impl < ' a > AstNode < ' a > for ByteString < ' a > {
428
+ fn cast ( syntax : SyntaxNodeRef < ' a > ) -> Option < Self > {
429
+ match syntax. kind ( ) {
430
+ BYTE_STRING => Some ( ByteString { syntax } ) ,
431
+ _ => None ,
432
+ }
433
+ }
434
+ fn syntax ( self ) -> SyntaxNodeRef < ' a > { self . syntax }
435
+ }
436
+
437
+ impl < R : TreeRoot < RaTypes > > ByteStringNode < R > {
438
+ pub fn borrowed ( & self ) -> ByteString {
439
+ ByteStringNode { syntax : self . syntax . borrowed ( ) }
440
+ }
441
+ pub fn owned ( & self ) -> ByteStringNode {
442
+ ByteStringNode { syntax : self . syntax . owned ( ) }
443
+ }
444
+ }
445
+
446
+
447
+ impl < ' a > ByteString < ' a > { }
448
+
375
449
// CallExpr
376
450
#[ derive( Debug , Clone , Copy , ) ]
377
451
pub struct CallExprNode < R : TreeRoot < RaTypes > = OwnedRoot > {
0 commit comments