This structure represents a hardware service.
Specifically the functionality provided by this struct
exists to provide a GraphQL interface over UDP, a means
of exposing a subsystem to GraphQL queries and means
for persistence throughout GraphQL queries.
use kubos_service::Service;
let sub = model::Subsystem::new();
Service::new(
"example-service",
sub,
schema::QueryRoot,
schema::MutationRoot,
).start();
pub fn new<Query, Mutation, S>( config: Config, subsystem: S, query: Query, mutation: Mutation ) -> Self where Query: GraphQLType<Context = Context<S>, TypeInfo = ()> + Send + Sync + 'static, Mutation: GraphQLType<Context = Context<S>, TypeInfo = ()> + Send + Sync + 'static, S: Send + Sync + Clone + 'static, | [src] |
Creates a new service instance
name
- The name of the service. This is used to find the appropriate config information
subsystem
- An instance of the subsystem struct. This one instance will be used by all queries.
query
- The root query struct holding all other GraphQL queries.
mutation
- The root mutation struct holding all other GraphQL mutations.
Starts the service's GraphQL/UDP server. This function runs
without return.
The UDP interface will panic if the ip address and port provided
cannot be bound (like if they are already in use), or if for some reason the socket fails
to receive a message.
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Mutably borrows from an owned value. Read more