// GENERATED — DO NOT EDIT

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/enum.Align.html).
pub(all) enum Align {
  Start = 0
  Center = 1
  End = 2
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/enum.CursorBlinkMode.html).
pub(all) enum CursorBlinkMode {
  System = 0
  On = 1
  Off = 2
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/enum.CursorShape.html).
pub(all) enum CursorShape {
  Block = 0
  Ibeam = 1
  Underline = 2
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/enum.EraseBinding.html).
pub(all) enum EraseBinding {
  Auto = 0
  AsciiBackspace = 1
  AsciiDelete = 2
  DeleteSequence = 3
  Tty = 4
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/enum.Format.html).
pub(all) enum Format {
  Text = 0
  Html = 1
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/enum.TextBlinkMode.html).
pub(all) enum TextBlinkMode {
  Never = 0
  Focused = 1
  Unfocused = 2
  Always = 3
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/enum.WriteFlags.html).
pub(all) enum WriteFlags {
  Default = 0
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/flags.PtyFlags.html).
pub(all) enum PtyFlag {
  NoLastlog = 1
  NoUtmp = 2
  NoWtmp = 4
  NoHelper = 8
  NoFallback = 16
  NoSession = 32
  NoCtty = 64
  Default = 128
}

///|
fn PtyFlag::to_int(self : PtyFlag) -> Int = "%identity"

///|
pub struct PtyFlags {
  priv value : Int
}

///|
pub fn PtyFlags::PtyFlags(flags : Array[PtyFlag]) -> PtyFlags {
  let mut v = 0
  for flag in flags {
    v = v | flag.to_int()
  }
  PtyFlags::{ value: v }
}

///|
pub fn PtyFlags::from_int(value : Int) -> PtyFlags {
  PtyFlags::{ value, }
}

///|
pub fn PtyFlags::to_int(self : PtyFlags) -> Int {
  self.value
}

///|
/// [Upstream documentation](https://gnome.pages.gitlab.gnome.org/vte/gtk4/flags.UuidFormat.html).
pub(all) enum UuidFormatFlag {
  Simple = 1
  Braced = 2
  Urn = 4
  Any = 8
}

///|
fn UuidFormatFlag::to_int(self : UuidFormatFlag) -> Int = "%identity"

///|
pub struct UuidFormat {
  priv value : Int
}

///|
pub fn UuidFormat::UuidFormat(flags : Array[UuidFormatFlag]) -> UuidFormat {
  let mut v = 0
  for flag in flags {
    v = v | flag.to_int()
  }
  UuidFormat::{ value: v }
}

///|
pub fn UuidFormat::from_int(value : Int) -> UuidFormat {
  UuidFormat::{ value, }
}

///|
pub fn UuidFormat::to_int(self : UuidFormat) -> Int {
  self.value
}