content: // generated by diplomat-tool
  // dart format off
  
  part of 'lib.g.dart';
  
  final class _CyclicStructCFfi extends ffi.Struct {
    external _CyclicStructAFfi a;
  }
  
  final class CyclicStructC {
    CyclicStructA a;
  
    CyclicStructC({required this.a});
  
    // This struct contains borrowed fields, so this takes in a list of
    // "edges" corresponding to where each lifetime's data may have been borrowed from
    // and passes it down to individual fields containing the borrow.
    // This method does not attempt to handle any dependencies between lifetimes, the caller
    // should handle this when constructing edge arrays.
    // ignore: unused_element
    CyclicStructC._fromFfi(_CyclicStructCFfi ffi) :
      a = CyclicStructA._fromFfi(ffi.a);
  
    // ignore: unused_element
    _CyclicStructCFfi _toFfi(ffi.Allocator temp) {
      final struct = ffi.Struct.create<_CyclicStructCFfi>();
      struct.a = a._toFfi(temp);
      return struct;
    }
  
    static CyclicStructC takesNestedParameters(CyclicStructC c) {
      final temp = _FinalizedArena();
      final result = _CyclicStructC_takes_nested_parameters(c._toFfi(temp.arena));
      return CyclicStructC._fromFfi(result);
    }
  
    String cyclicOut() {
      final temp = _FinalizedArena();
      final write = _Write();
      _CyclicStructC_cyclic_out(_toFfi(temp.arena), write._ffi);
      return write.finalize();
    }
  
  
    @override
    bool operator ==(Object other) =>
        other is CyclicStructC &&
        other.a == a;
  
    @override
    int get hashCode => Object.hashAll([
          a,
        ]);
  }
  
  @_DiplomatFfiUse('CyclicStructC_takes_nested_parameters')
  @ffi.Native<_CyclicStructCFfi Function(_CyclicStructCFfi)>(isLeaf: true, symbol: 'CyclicStructC_takes_nested_parameters')
  // ignore: non_constant_identifier_names
  external _CyclicStructCFfi _CyclicStructC_takes_nested_parameters(_CyclicStructCFfi c);
  
  @_DiplomatFfiUse('CyclicStructC_cyclic_out')
  @ffi.Native<ffi.Void Function(_CyclicStructCFfi, ffi.Pointer<ffi.Opaque>)>(isLeaf: true, symbol: 'CyclicStructC_cyclic_out')
  // ignore: non_constant_identifier_names
  external void _CyclicStructC_cyclic_out(_CyclicStructCFfi self, ffi.Pointer<ffi.Opaque> write);
  
  // dart format on
  