mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
services: Service types can now specify a default value for instances.
* gnu/services.scm (&no-default-value): New variable. (<service-type>)[default-value]: New field. (<service>): Rename constructor from 'service' to 'make-service'. (service): New macro. (%service-with-default-value): New procedure. (&missing-value-service-error): New error condition. * tests/services.scm ("services, default value"): New test. * doc/guix.texi (Service Types and Services): Document 'default-value'. (Service Reference): Explain default values.
This commit is contained in:
parent
f816dba680
commit
1bb895eabf
3 changed files with 103 additions and 9 deletions
|
@ -31,6 +31,17 @@
|
|||
|
||||
(test-begin "services")
|
||||
|
||||
(test-equal "services, default value"
|
||||
'(42 123 234 error)
|
||||
(let* ((t1 (service-type (name 't1) (extensions '())))
|
||||
(t2 (service-type (name 't2) (extensions '())
|
||||
(default-value 42))))
|
||||
(list (service-value (service t2))
|
||||
(service-value (service t2 123))
|
||||
(service-value (service t1 234))
|
||||
(guard (c ((missing-value-service-error? c) 'error))
|
||||
(service t1)))))
|
||||
|
||||
(test-assert "service-back-edges"
|
||||
(let* ((t1 (service-type (name 't1) (extensions '())
|
||||
(compose +) (extend *)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue