# Trait std::process::Termination[−][src]

    #[lang = "termination"]
    pub trait Termination {
        fn report(self) -> i32;
    }

🔬 This is a nightly-only experimental API. (`termination_trait_lib` #43301)

A trait for implementing arbitrary return types in the `main` function.

The c-main function only supports to return integers as return type. So, every type implementing the `Termination` trait has to be converted to an integer.

The default implementations are returning `libc::EXIT_SUCCESS` to indicate a successful execution. In case of a failure, `libc::EXIT_FAILURE` is returned.

## Required Methods

### `fn report(self) -> i32`

🔬 This is a nightly-only experimental API. (`termination_trait_lib` #43301)

Is called to get the representation of the value as status code. This status code is returned to the operating system.

## Implementors

- `impl Termination for ()` | [src]

- `impl<E: Debug> Termination for Result<(), E>` | [src]

- `impl Termination for !` | [src]

- `impl<E: Debug> Termination for Result<!, E>` | [src]

- `impl Termination for ExitCode` | [src]

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g. `str,u8` or `String,struct:Vec,test`)