// This file was generated by the Gtk# code generator.
// Any changes made will be lost if regenerated.

namespace Pango {

	using System;
	using System.Collections;
	using System.Collections.Generic;
	using System.Runtime.InteropServices;

#region Autogenerated code
	[StructLayout(LayoutKind.Sequential)]
	public partial struct LayoutRun : IEquatable<LayoutRun> {

		private IntPtr _item;
		public Pango.Item Item {
			get {
				return _item == IntPtr.Zero ? null : (Pango.Item) GLib.Opaque.GetOpaque (_item, typeof (Pango.Item), false);
			}
			set {
				_item = value == null ? IntPtr.Zero : value.Handle;
			}
		}
		private IntPtr _glyphs;
		public Pango.GlyphString Glyphs {
			get {
				return _glyphs == IntPtr.Zero ? null : (Pango.GlyphString) GLib.Opaque.GetOpaque (_glyphs, typeof (Pango.GlyphString), false);
			}
			set {
				_glyphs = value == null ? IntPtr.Zero : value.Handle;
			}
		}

		public static Pango.LayoutRun Zero = new Pango.LayoutRun ();

		public static Pango.LayoutRun New(IntPtr raw) {
			if (raw == IntPtr.Zero)
				return Pango.LayoutRun.Zero;
			return (Pango.LayoutRun) Marshal.PtrToStructure (raw, typeof (Pango.LayoutRun));
		}

		public bool Equals (LayoutRun other)
		{
			return true && Item.Equals (other.Item) && Glyphs.Equals (other.Glyphs);
		}

		public override bool Equals (object other)
		{
			return other is LayoutRun && Equals ((LayoutRun) other);
		}

		public override int GetHashCode ()
		{
			return this.GetType ().FullName.GetHashCode () ^ Item.GetHashCode () ^ Glyphs.GetHashCode ();
		}

		private static GLib.GType GType {
			get { return GLib.GType.Pointer; }
		}
#endregion
	}
}
